Skip to content

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, 4
  • range(a, b): 从a到b,比如range(1, 5)1, 2, 3, 4
  • range(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]

  1. 切片: 获取中间三个元素(30, 40, 50)
    print(b[?:?])
    
  2. 使用 delremove() 方法分别删除列表中的数字 15
  3. 三位数排序
  4. 陶陶摘苹果

扩展

  • pass
  • for else