当前位置: 首页 > article >正文

Python 小高考篇(8)拓展

目录

  • 列表
    • 读取内容
    • 修改内容
    • for 循环遍历列表
    • 下标越界
  • ASCII码和字符的相互转换
  • 导入库
  • 进制转换
  • 结尾


本文由Jzwalliser原创,发布在CSDN平台上,遵循CC 4.0 BY-SA协议。
因此,若需转载/引用本文,请注明作者并附原文链接,且禁止删除/修改本段文字。
违者必究,谢谢配合。
个人主页:blog.csdn.net/jzwalliser

列表

列表可以看作是一大堆串在一起的变量,在python中可以像这样创建列表:

>>> lst1 = []
>>> lst2 = [1,2,3]

像这样,就创建了一个叫lst1的空列表,里面什么也没有,还创建了一个叫lst2的,它里面有三个元素,元素之间用逗号分隔,分别是数字 1 1 1 2 2 2 3 3 3。当然,列表中不仅可以存数字,还可以存字符串,甚至是列表内套列表。

>>> lst1 = [1,2,"345",6,"789"]
>>> lst2 = [114,514,[1919,"810"],"恶臭"]

读取内容

若想要读取列表中的内容,则可以用lst[n]的方法获得,其中n叫下标,像这样:

>>> lst = [1,2,3]
>>> lst[0]
1
>>> lst[1]
2
>>> lst[2]
3

解释一下:第1行(lst = [1,2,3])表示创建一个列表,第2行(lst[0])表示读取列表lst中的第0号元素,第3行表示读取第1号元素,第4行表示读取第2号元素。
那为什么是所谓“第0号”元素而不是第1号呢?因为在大部分编程语言中,数字都是从0开始数,而不是从1开始,python也不例外(for i in range(n)就是 从0开始的嘛)。所以想要读取列表最前面的元素, 虽然习惯上叫作“第1个元素”,但需要写作lst[0] ,千万别搞成lst[1]了。像这样推下来,习惯上 “第2个”就是lst[1],“第3个”就是lst[2],以此 类推。下标也可以是负的,比如lst[-1]表示倒数 第1个元素,lst[-2]表示倒数第2个。

>>> lst = [1,2,3,4,5]
>>> lst[-1]
5
>>> lst[-3]
3
>>> lst[-2]
4

修改内容

要想修该列表中某个元素的值也很简单:

>>> lst = [1,2]
>>> lst[0] = 3
>>> lst
[3, 2]
>>> lst[1] += 2
>>> lst
[3, 4]

直接把lst[n]当作是一个变量对待就可以了。
也可以往列表中增添元素:

>>> lst = [1,2]
>>> lst.append(5)
>>> lst
[1, 2, 5]
>>> lst += [8]
>>> lst
[1, 2, 5, 8]

删除元素:

>>> lst = [1,2,3,4,5]
>>> lst.pop()
5
>>> lst
[1, 2, 3, 4]
>>> lst.pop(1)
2
>>> lst
[1, 3, 4]
>>> lst.pop(2)
4
>>> lst
[1, 3]

for 循环遍历列表

与字符串类似,列表也可以通过len(lst)获取长度,只不过这样得到的就是元素个数:

>>> lst1 = [1,2,3,4,5,114,514]
>>> len(lst1)
7
>>> lst2 = []
>>> len(lst2)
0
>>> len([11,45,14])
3

因此,可以通过这种方法“过一遍”(遍历)整个列表:

lst = [1,5,6,7,1,5,2]
for i in range(len(lst)):
    print(lst[i],end=" ")

运行结果:

1 5 6 7 1 5 2

除此之外,还有一种遍历列表的方法:

lst = [1,5,6,7,1,5,2]
for i in lst:
    print(i,end=" ")

运行结果:

1 5 6 7 1 5 2

第一种方式代码略长,但可以知道当前是第几次循环;第二种方式更精简,适用于可忽略循环次数的情况。

下标越界

最后,要注意下标越界问题。看例:

>>> lst = [1,2]
>>> lst[4]
Traceback (most recent call last):
  File "/data/user/0/ru.iiec.pydroid3/files/accomp_files/iiec_run/iiec_run.py", line 31, in <module>
    start(fakepyfile,mainpyfile)
  File "/data/user/0/ru.iiec.pydroid3/files/accomp_files/iiec_run/iiec_run.py", line 30, in start
    exec(open(mainpyfile).read(),  __main__.__dict__)
  File "<string>", line 10, in <module>
  File "<string>", line 1, in <module>
IndexError: list index out of range

于是出错了。出错是因为列表内只有2个元素,却尝试读取python列表的第5号元素是什么……那当然出错啦。

ASCII码和字符的相互转换

在python中,有chr()ord()两个函数,它们作用相反:chr()用于将ASCII码转换为字符;ord()用于将字符转换为ASCII码。

>>> chr(48)
0
>>> chr(32) #空格

>>> chr(65)
A
>>> ord("1")
49
>>> ord(" ")
32
>>> ord("a")
97
>>> ord("A")
65
>>> ord("Z")
90

导入库

通过import可以导入外部的库。什么意思呢?比如说,你想用python计算正弦值,怎么办?可以直接sin(15)吗?

>>> sin(15)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'sin' is not defined. Did you mean: 'bin'?

很明显,python并不知道sin()是什么东西,所以 为了计算它们,我们现要用import语句导入整个数 “套件”(math),再用套件(严格来说应该叫“库” )里面的sin()函数(当然里面不止sin()函数):

>>> import math
>>> math.sin(15)
0.6502878401571168
>>> math.cos(15)
-0.7596879128588213
>>> math.tan(15)
-0.8559934009085188

上面这种方式是先导入库(套件),再使用里面的函数(工具)。当然,也可以只导入函数而不导入库,这就需要用到from ... import ...语句了:

>>> from math import sin
>>> sin(15)
0.6502878401571168
>>> tan(15)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'tan' is not defined

由于只导入了sin()没导入tan()函数,因此胡乱使用会导致错误。解决办法是,一次性导入所需的函数,或着干脆全导进来:

>>> from math import sin,cos,tan
>>> sin(15)
0.6502878401571168
>>> cos(15)
-0.7596879128588213
>>> tan(15)
-0.8559934009085188
>>> from math import *
>>> sin(15)
0.6502878401571168
>>> cos(15)
-0.7596879128588213
>>> tan(15)
-0.8559934009085188

进制转换

在python中,可以很方便地将十进制转换为二进制、八进制和十六进制。先看一眼各个进制对应的英文及其缩写:

进制英文缩写
二进制BinaryBIN
八进制OctalOCT
十进制DecimalDEC
十六进制HexadecimalHEX

如,将十进制下的数字114514转换为二进制:

>>> bin(114514)
'0b11011111101010010'

解释一下结果是什么意思:前缀“0b”代表这是个二进制数,后面的“”是二进制数字。如果是八进制数则其前缀是“0o”,十六进制是“0x”。

>>> bin(114514)
'0b11011111101010010'
>>> oct(114514)
'0o337522'
>>> hex(114514)
'0x1bf52'

若将其它进制的数转换为十进制,则可以用int() 函数:

>>> int("1bf52",base=16)
114514
>>> int("337522",base=8)
114514
>>> int("11011111101010010",base=2)
114514

可见,int(num,base=n)是指将n进制数num转 换为十进制。

结尾

好啦,今天就分享到这里了,记得点赞加关注哦!


http://www.kler.cn/a/416642.html

相关文章:

  • BiGRU:双向门控循环单元在序列处理中的深度探索
  • set up RAGFlow on your Mac
  • vue中如何获取public路径
  • 【通俗理解】步长和学习率在神经网络中是一回事吗?
  • C++算法练习-day50——538.把二叉树转换为累加树
  • 【前端】跨域问题与缓存
  • 拥抱 OpenTelemetry:阿里云 Java Agent 演进实践
  • leetcode 797.所有的可能的路径
  • 【docker】docker build上下文
  • map用于leetcode
  • 【HTML】关于列表标签和表格标签
  • 计算机毕业设计Python+卷积神经网络股票预测系统 股票推荐系统 股票可视化 股票数据分析 量化交易系统 股票爬虫 股票K线图 大数据毕业设计 AI
  • UCOS-II 自学笔记
  • 性能测试生产环境只读业务压力测试及容量评估
  • elasticsearch现有集群扩展节点
  • 随着新技术和产业政策的双轮驱动,未来中国【电子氟化液】市场将迎来发展机遇
  • 【Python数据分析】房价预测:使用线性回归模型预测波士顿房价
  • 《白帽子讲Web安全》15-16章
  • 渐冻症:在困境中寻找希望之光
  • 【排序用法】.NET开源 ORM 框架 SqlSugar 系列
  • SpringBoot 架构助力夕阳红公寓管理系统可持续发展战略
  • 半桥LLC谐振变换器及同步整流MATLAB仿真(二)
  • UE5_CommonUI简单使用(2)
  • 电脑启动需要经历哪些过程?
  • 如何看linux系统内核是aarch64 ,还是64-bit
  • 【AI】学习路径