21. 元组: 一个不可变的列表
定义完之后就不可变, 只能读取其中数据, 不能重新赋值.
用 () 定义
- fruits = ("apple", "orange", "pear")
- print(fruits)
输出:
('apple', 'orange', 'pear')
注意这里的括号是小括号, 不是列表的中括号
当强行给元组进行赋值操作时, 就会报错
- fruits = ("apple", "orange", "pear")
- fruits[1] = "banana"
- print(fruits)
- TypeError: 'tuple' object does not support item assignment
22. 元组使用注意事项:
当元组中仅存在一个数字时, 在定义时为了产生歧义, 需要定义成为以下形式
num = (1,)
因为小括号在 Python 中也是数学运算的括号,(1)会产生歧义, 导致认为是一个括号中的数字 1
23."可变" 元组
元组是可以存储列表的, 当存储列表时, 列表中的元素是可变的,
- hobby = ["运动", "唱歌", "读书"]
- person = ("张三", 17, "male", hobby, True)
- hobby[1] = "打游戏"
- print(person)
输出:
- ('张三', 17, 'male', ['运动', '打游戏', '读书'], True)
- hobby = ["运动", "唱歌", "读书"]
- person = ("张三", 17, "male", hobby, True)
- hobby.append("打游戏")
- print(person)
输出:
('张三', 17, 'male', ['运动', '唱歌', '读书', '打游戏'], True)
在本例中, 元组并没有变化, 而变化的是元组中的列表中的元素, 指向的内存对象没变
如果改变指向内存的对象
- hobby1 = ["运动", "唱歌", "读书"]
- hobby2 = ["运动", "唱歌", "读书"]
- person = ("张三", 17, "male", hobby, True)
- person[3] = hobby2
- print(person)
这样就会报错
TypeError: 'tuple' object does not support item assignment
24. 数据类型转换 str --> int
在程序中, 往往需要对相关的数据类型进行一定转化运用, 比如字符串类型转化成为数字类型进行大小比较
- a = "2"
- print(a)
- print(int(a))
输出:
2
2
虽然输出都是 2, 但是这两个代表的意义完全不同, 第一个 2 是字符串, 第二个 2 是整数, 第二个 2 进行数字大小比较, 第一个 2 不行
25. 判断语句 if
计算机能够自动化执行任务, 很多情况下都是依靠判断和循环语句实现, 判断语句能够让程序执行时进行选择, 当出现什么情况时, 执行什么语句
判断语句的格式:
if 判断条件:
执行语句
elif 判断条件:
执行语句
else 判断条件:
执行语句
其中 elif 可以重复多次
执行语句之前需要进行缩进(Tab 或者使用 4 个空格)
判断之后需要使用冒号
判断语句是由上而下执行的, 当满足一个条件之后, 后面的执行语句都不再执行了
例子: 在游戏中, 经常会判断角色的血量, 当大于某个值时, 健康, 当小于某个值时, 负伤, 当小于等于 0 时, 角色死亡.
- hp = 30
- if hp> 50:
- print("您处于健康状态")
- elif hp> 0:
- print("您处于负伤状态")
- else:
- print("您的角色已死亡")
输出:
您处于负伤状态
26. 特殊的判断语句
if x:
执行语句
当 x 为非 0 值, 非空值, 非空 list 时就判断为 True, 执行语句
- if "a":
- print("这是一个非空值")
输出:
这是一个非空值
27.print()函数
print()函数默认是带换行的
print(data, end="")
end=""可以不写, 默认值是 end="\n"
也就是说, 默认的 end 是换行操作, 当如果不需要换行操作时, 可以修改 end 值
- print("爱我")
- print("中华")
- print("!")
- print("爱我", end="")
- print("中华", end="")
- print("!", end="")
输出:
爱我
中华
!
爱我中华!
当输出一系列数字时, 还可以通过 end="" 中间加符号进行分割
- print("2", end=",")
- print("4", end=",")
- print("6", end="")
输出:
2,4,6
28.range()函数
range()函数可以生成一个有序的迭代对象
完整的语法是 range(start,stop,step)
start: 计数从 start 开始. 默认是从 0 开始. 例如 range(5)等价于 range(0, 5);
stop: 计数到 stop 结束, 但不包括 stop. 例如: range(0, 5) 是 [0, 1, 2, 3, 4] 没有 5
step: 步长, 默认为 1. 例如: range(0, 5) 等价于 range(0, 5, 1)
直接打印 range 函数, 输出的是一个对象
- print(range(10))
- print(range(1,10))
- print(range(1,10,2)
输出:
- range(0, 10)
- range(1, 10)
- range(1, 10, 2)
可以通过迭代的形式输出其中的值
- for i in range(10):
- print(i, end=",")
输出:
2,4,6,0,1,2,3,4,5,6,7,8,9,
如果需要消除最后一个顿号, 可以进行判断:
- for i in range(10):
- if i == len(range(10) - 1):
- print(i)
- else:
- print(i, end=",")
输出:
0,1,2,3,4,5,6,7,8,9
29. 循环语句 --for()
循环输出列表中元素
- fruits = ["apple", "orange", "banana"]
- for i in fruits:
- print(i)
输出:
- apple
- orange
- banana
循环累加:
- sum = 0
- for i in range(101):
- sum = sum + i
- print(sum)
输出:
5050
30. 循环语句 --while()
满足条件不断循环, 不满足条件就跳出循环
while 条件判断:
执行语句
while()循环计算 1+2+...+100
- i = 100
- sum = 0
- while i == 0:
- sum = sum + i
- i = i - 1
- print(sum)
输出:
5050
循环输出列表中元素
- fruits = ["apple", "orange", "banana"]
- i = 0
- while i < len(fruits):
- print(fruits[i])
- i = i + 1
输出:
- apple
- orange
- banana
来源: http://www.bubuko.com/infodetail-2922815.html