day4-循环和列表
01-for循环
语法:
""""
for 变量 in 序列:
循环体
"""
for x in 'abcmnlkmsa':
print('hello world!')
# 指打印六遍'hallo world!'
02-range函数 - 创建等差数列
语法:
"""
1)range(N) - 创建[0, N)的等差数列,差是1
例:range(6): 0 1 2 3 4 5
range(11): 0 1 2 3 4 5 6 7 8 9 10
2)range(M,N) - 创建[M, N)的等差数列,差是1。(注意:M必须小于N)
range(5, 10): 5 6 7 8 9
range(-5, 5): -5 -4 -3 -2 -1 0 1 2 3 4
3)range(M, N, step) - 创建[M, N),差是step
range(2, 10, 2): 2 4 6 8
range(10, 2, -2): 10 8 6 4
"""
for x in range(5):
print(x)
for x in range(-5, 5):
print(x)
for x in range(10, 2, -2):
print(x)
练习:使用range函数生成以下等差列
# 0 1 2 3 4 5 6 7 8 9 10
range(11)
# 9 10 11 12 13
range(9, 14)
累计求和
- 案例1:求1+2+3+…+100的和
- 1)定义变量保存最后的和,变量默认值是0
- 2)通过for循环依次获取需要求和的每一个数据
- 3)在循环体中取到一个需要求和的数据,就往结果中加一个值
sum1 = 0 # 1 + 2 -> 3 + 3 -> 6 + 4 -> 10
for x in range(1, 101):
sum1 += x
print(sum1)
案例2:求所有学生的总成绩[98 + 80 + 70 + 67 + 55 + 99 + 81]
total_score = 0
for x in scores:
total_score += x
print(total_score)
统计个数
案例:统计100以内所有能被3整除的数的个数
count = 0
for x in range(1, 100):
if x % 3 == 0:
count += 1
print(count)
02-while循环
语法:
"""
while 条件语句:
循环体
"""
- 执行过程:
- 先判断条件语句是否成立,如果成立就执行循环体,执行完循环体再判断条件语句是否成立,成立再执行循环体… 以此类推,直到条件语句的结果为False整个循环结束。
案例:使用while循环控制程序打印5次’hello world!’
x = 0
while x < 5:
print('hello world!')
x += 1
for x in range(5):
print('hello world!')
使用建议:遇到循环的问题,优先考虑for循环,for解决不了的情况才选择while。
03-continnui和break
**注意:**continue和break是只能在循环体中使用的关键字
- 1.continue - 结束一次循环
- 在循环体的时候如果遇到了continue,那么这一次循环结束,直接进入下次循环
例如:
for x in range(5):
print('hello!')
continue
print('你好')
print('python')
-
2.break - 结束整个循环
- 执行循环体的时候如果遇到break,整个循环直接结束(循环体剩下的部分不执行,也不再进入下一次循环)
例如:
for x in range(5):
print('hello!')
break
print('你好')
print('python')
- 3.当while遇到break
- 初学者使用while循环的套路:
"""
while True:
需要重复执行的操作
if 循环结束的条件:
break
"""
-
4.使用while循环场景
-
1)死循环
-
2)循环次数不确定:程序员在写代码的时候无法确定循环次数,因为次数由用户行为控制
-
案例:提示用户输入密码,直到输入正确为止
例如:
password = '123456'
while True:
value = input('请输入密码:')
if value == password:
break
练习:写一个猜数字游戏
产生一个0~100的随机数。然后提示用户输入数字,直到输入正确为止;输入错误的时候给出对应的提示。
例如:
from random import randint
number = randint(0, 100)
while True:
value = int(input('请输入一个整数(0~100):'))
if value > number:
print('大了,再小点儿!')
elif value < number:
print('小了,再大点儿')
else:
print('恭喜你,猜对了!')
break
04-列表
- 1.认识列表 - list
- 列表是系统类型中容器型数据类型中的一种。
- 列表是容器,将[]作为容器的标志,里面多个元素用逗号隔开:[数据1, 数据2, 数据3, …]
- 列表是可变的(列表支持增、删、改);列表是有序的(顺序影响结果;支持下标操作)
- 列表的元素:任何类型的数据都可以作为列表的元素,而且同一个列表中元素的类型可以不一样
# 列表形式
list1 = [10, 20, 30]
# 列表有序
print([10, 20] == [20, 10])
# 任何类型的数据都可以是列表的元素
list2 = [1, 3.12, 'abc', True]
print(list2)
list3 = [10, 20, [30, 40]]
# 空列表
list4 = []
05-增删改查
-
查 - 获取列表元素
1)查单个 - 获取列表中的某一个元素
语法:
-
列表[下标] - 获取列表中指定下标对应的元素
-
[] - 固定写法
-
下标 - 列表中的元素在列表中的位置信息。
-
列表中的每个元素都有两个下标值:a.从前往后从0开始不断增加的下标值
b.从后往前从-1开始不断减小的下标值
例如:
nums = [100, 200, 300, 400]
print(nums[2], nums[-2])
movies = ['复仇者联盟', '盗梦空间', '怦然心动', '绿皮书', '肖生克的救赎', '触不可及']
print(movies[0])
print(movies[-2])
2)遍历 - 一个一个地获取列表中所有的元素
语法:
for 变量 in 列表:
循环体(变量依次取到的就是列表中的元素)
例如:
movies = ['复仇者联盟', '盗梦空间', '怦然心动', '绿皮书', '肖生克的救赎', '触不可及']
for x in movies:
print(x)
案例:统计scores中不及格学生的个数
例如:
scores = [89, 78, 67, 10, 45, 99, 50]
count = 0
for x in scores:
if x < 60:
count += 1
print(count)
2.增 - 添加元素
1)列表.append(元素) - 在列表的最后添加一个元素
例如:
movies = ['复仇者联盟', '盗梦空间', '怦然心动', '绿皮书', '肖生克的救赎', '触不可及']
print(movies)
movies.append('泰坦尼克号')
print(movies)
练习1:提取nums中所有的偶数nums = [89, 78, 90, 64, 55, 71, 34]
例如:
new_nums = []
for x in nums:
if x % 2 == 0:
new_nums.append(x)
print(new_nums)
2)列表.insert(下标, 元素) - 将元素插入到列表中指定下标对应的元素前
例如:
movies = ['复仇者联盟', '盗梦空间', '怦然心动', '绿皮书', '肖生克的救赎', '触不可及']
print(movies)
movies.insert(2, '泰坦尼克号')
print(movies)
2.删 - 删除列表中的某个元素
1)del 列表[下标] - 删除列表中指定下标对应的元素
例如:
movies = ['复仇者联盟', '盗梦空间', '怦然心动', '绿皮书', '肖生克的救赎', '触不可及']
print(movies)
del movies[1]
print(movies)
2)列表.remove(元素) - 删除列表中指定元素(如果元素有多个,会删最前面的那一个)
例如:
movies = ['复仇者联盟', '盗梦空间', '怦然心动', '绿皮书', '肖生克的救赎', '触不可及']
print(movies)
movies.remove('盗梦空间')
print(movies)
3)列表.pop() - 取走列表中最后一个元素并且返回
列表.pop(下标) - 取走列表中指定下标对应的元素并且返回
例如:
movies = ['复仇者联盟', '盗梦空间', '怦然心动', '绿皮书', '盗梦空间', '肖生克的救赎', '触不可及']
print(movies)
result = movies.pop()
print(movies, result)
result = movies.pop(0)
print(movies, result)
4.改 - 修改某个元素的值
列表[下标] = 新元素 - 修改列表中指定下标对应的元素为新元素
例如:
movies = ['复仇者联盟', '盗梦空间', '怦然心动', '绿皮书', '盗梦空间', '肖生克的救赎', '触不可及']
print(movies)
movies[1] = '钢铁侠'
print(movies)
= [‘复仇者联盟’, ‘盗梦空间’, ‘怦然心动’, ‘绿皮书’, ‘盗梦空间’, ‘肖生克的救赎’, ‘触不可及’]
print(movies)
result = movies.pop()
print(movies, result)
result = movies.pop(0)
print(movies, result)
4.改 - 修改某个元素的值
列表[下标] = 新元素 - 修改列表中指定下标对应的元素为新元素
例如:
```python
movies = ['复仇者联盟', '盗梦空间', '怦然心动', '绿皮书', '盗梦空间', '肖生克的救赎', '触不可及']
print(movies)
movies[1] = '钢铁侠'
print(movies)