02 控制流
Pre: pycharm
Exercise: - https://www.luogu.com.cn/problem/P5708
列表
介绍与基本概念
存储数据的一个序列 E.g. 酒店房间
- 索引/位置/下标:从0开始
- 定义时:由中括号包裹,元素间用逗号分隔
- 什么类型都能塞
访问
在中括号内填入索引来访问列表中的特定元素:
a = ['物理', '化学', 1997, 2000]
print(a[0]) # 物理
索引可以倒着写:
a = ['物理', '化学', 1997, 2000]
print(a[-1]) # 2000
索引也可以是一个范围,获取一个新列表:
a = [1, 2, 3, 4, 5, 6]
print(a[1:3]) # [2, 3]
新增
a = []
a.append("张三")
a.append("小李")
print(a)
删除
区别?
a = [1, 2, 3, 4, 5, 6]
del a[2]
print(a)
a = [1, 2, 3, 4, 5, 6]
a.remove(2)
print(a)
常见方法
- len(list) 列表元素个数
- max(list) 返回列表元素最大值
- min(list) 返回列表元素最小值
- sum(list) 返回列表元素的和
- list.append(obj) 在列表末尾添加新的对象
- list.count(obj) 统计某个元素在列表中出现的次数
- list.reverse() 反向列表中元素
- list.sort(key=None, reverse=False) 对原列表进行排序
if elif else 语句
- 判断
- elif 可以没有,也可以有很多
- else 可以没有,有也只能有1个
x = int(input("输入数字:"))
if x < 0:
x = 0
print('数字不可为负数,已更改为0')
elif x == 0:
print('0')
else:
print('是正数')
for 语句
words = ['cat', 'window', 'defenestrate']
for w in words:
print(w, len(w))
'''
cat 3
window 6
defenestrate 12
'''
range() 函数
三种变式(重载):
range(a): 从0到a,比如range(5)是0, 1, 2, 3, 4range(a, b): 从a到b,比如range(1, 5)是1, 2, 3, 4range(a, b, c): 从a到b,步长为c,比如range(-10, -100, -30)是-10, -40, -70
循环中:
a = ['Mary', 'had', 'a', 'little', 'lamb']
for i in range(len(a)):
print(i, a[i])
'''
0 Mary
1 had
2 a
3 little
4 lamb
'''
while 语句
break 和 continue
balance = 5000
while True:
withdrawal_amount = int(input("请输入取款金额:"))
if withdrawal_amount > balance:
print("余额不足,无法完成此次取款。")
elif withdrawal_amount <= 0:
print("取款金额必须大于零。")
else:
balance -= withdrawal_amount
print(f"取款成功!您的余额为:{balance}元")
break # 成功取款后退出循环
print("感谢使用本ATM系统")
for num in range(2, 10):
if num % 2 == 0:
print(f"找到偶数 {num}")
continue
print(f"找到奇数 {num}")
练习
b = [10, 20, 30, 40, 50, 60]
扩展
- pass
- for else