1.for循环和range函数
- for循环
"""for 变量 in 序列:
循环体
"""
for x in 'abcmnlkssa':
print('hello world!')
for x in range(5):
print('hello world!')
2.range函数 – 创建等差数列
-
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
-
range(M,N) – 创建[M,N)的等差数列,差是1.(注意:H必须小于N)
- range(5,10):5 6 7 8 9
- range(-5,5):-5 -4 -3 -2 -1 0 1 2 3 4
-
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函数生成以下等差列
# 1) 0 1 2 3 4 5 6 7 8 9 10
# 2) 9 10 11 12 13
# 3) 7 5 3 1
# 4) 5 4 3 2 1 0
# 5) 12 15 18 21
for x in range(11):
print(x)
for x in range(9,14):
print(x)
for x in range(7,0,-2):
print(x)
for x in range(5,-1,-1):
print(x)
for x in range(12,22,3):
print(x)
-
累计求和
-
案例:求1+2+3+…+100的和
-
第一步:定义变量保存最后的和,变量默认值是0 — sum1 = 0
-
第二步:通过for循环依次获取需要求和的每一个数据 — for x in range(1,101):
-
第三步:在循环体中取到一个需要求和的数据,就往结果中加一个值 — sum1 += x
sum1 = 0 for x in range(1,101): sum1 += x print(sum1)
# 练习1:求100+101+102+...+200的结果 sum1 = 0 for x in range(100,201): sum1 += x print(sum1) # 练习2:求nums中所有元素的和 nums1 = [89, 10, 22, 11, 4, 8, 9] sum2 = 0 for x in nums1: sum2 += x print(sum2) # 练习3:求nums中所有偶数的和 nums2 = [89, 10, 22, 11, 4, 8, 9] sum3 = 0 for x in nums2: if x % 2 == 0: sum3 += x print(sum3)
-
-
-
统计个数
-
案例:统计nums中奇数的个数
nums = [89, 10, 22, 11, 4, 8, 9] nu = 0 for x in nums: if x % 2 != 0: nu += 1 print(nu)
2.while循环
-
语法
while 条件语句: 循环体
-
执行过程:
-
先判断条件语句是否成立,如果成立就执行循环体,执行循环完再判断条件是否成立,如果成立就继续执行循环体…,直到出现条件语句结果为False,结束整个循环。
#案例:使用while循环控制程序打印5次'hello world!' x = 0 while x<5: print('hello world!') x += 1
-
使用建议:遇到循环的问题,优先考虑for循环,for循环解决不了的情况才选择while循环
-
3.continue和break
-
continue – 结束一次循环
- 在循环体的时候如果遇到了continue,那么这一次循环结束,直接进入下次循环
for x in range(5):#只会打印5次hello,不会打印你好 print('hello') continue print('你好') print('python')
#例 for x in range(10): #0~9中,不能被3整除的数会被打印出来 if x % 3 == 0: continue print(x)
-
break – 结束整个循环
- 执行循环的时候如果遇到break,整个循环直接结束
for x in range(10):#只打印一次hello print('hello') break print('world') print('python')
-
当while遇到break
-
初学者使用while循环的套路
""" while True: 需要重复执行的操作 if 循环结束的条件: break """
-
-
使用while循环的场景
- 死循环
- 循环次数不确定
#案例:提示用户输入密码,直到正确
password = '123456'
while True:
value = input('请输入密码:')
if value == password:
break
#练习:写一个猜数字游戏
#产生一个0~100的随机数,然后提示用户输入数字,直到输入正确为止,输入错误的时候给出对应的提示
import random
num=random.randint(0,100)
ls=10
print('您一共有10次竞猜机会')
while True:
if ls>0:
number=int(input('请输入您猜想的数字:'))
if num == number:
print('恭喜您,猜中了!')
break
else:
ls -= 1
if number > num:
print('猜大了')
else:
print('猜小了')
print('您还有',ls,'次机会')
else:
break
4.列表
- 如果需要在程序中同时处理多个数据,就可以使用列表
-
认识列表 – list
- 列表是python系统中容器型数据类型的一种
- 列表是容器,将[]作为容器的标志,里面多个元素用逗号隔开:[数据1、数据2、数据3,…]
- 列表是可变的(列表支持增、删、改);列表是有序的(顺序影响结果)
- 列表的元素:任何类型的数据都可以作为列表的元素,而且同一个列表中元素的类型可以不一样
list = [10, 20, 30] #列表有序 print([10,20] == [20,10]) #False list2 = [10,2.43,'abv',True] list3 = [10,20,[30,40]] #空列表 list4 = []
5.增删改查
-
查 – 获取列表元素
- 查单个 – 获取列表中的某一个元素
- 语法
''' 列表[下标] 说明: 列表 -- 可以是保存列表的变量,也可以是一个具体的列表 [] -- 固定写法 下标 -- 列表中的元素在列表中的位置信息 列表中的每个元素都有两个下标值:a.从前往后从0开始不断增加的下标值 b.从后往前从-1开始不断减小的下标值 ''' num=[100, 200, 300, 400] print(nums[2],nums[-2]) movies = ['复仇者联盟', '盗梦空间', '怦然心动', '绿皮书', '肖生克的救赎', '触不可及'] print(movies[0]) print(movies[-2]) print(movies[6])#超出范围
-
遍历 – 一个一个地获取列表中所有的元素
movies = ['复仇者联盟', '盗梦空间', '怦然心动', '绿皮书', '肖生克的救赎', '触不可及'] for x in movies: print(x) # 案例:统计scores中不及格学生的个数 scores = [89, 78, 67, 10, 45, 99, 50] num=0 for x in scores: if x < 60: num += 1 print(num)
-
增 – 添加元素
-
列表.append(元素) – 在列表的最后添加一个元素
movies = ['复仇者联盟', '盗梦空间', '怦然心动', '绿皮书', '肖生克的救赎', '触不可及'] print(movies) movies.append('泰坦尼克号') print(movies) movies.append('三傻大闹宝莱坞') print(movies) #练习1:提取nums中所有的偶数 nums = [89, 78, 90, 64, 55, 71, 34] # [78, 90, 64, 34] nums4=[] for x in nums: if x % 2 == 0: nums4.append(x) print(nums4) # 练习2:提取nums中所有元素的个位数 nums2 = [89, 78, 90, 64, 55, 71, 34] # [9, 8, 0, 4, 5, 1, 4] nums3 = [] for x in nums2: nums3.append(x % 10) print(nums3)
-
列表.insert(下标,元素) – 将元素插入到指定下标对应的元素前
movies = ['复仇者联盟', '盗梦空间', '怦然心动', '绿皮书', '肖生克的救赎', '触不可及'] print(movies) movies.insert(2,'泰坦尼克号') print(movies) movies.insert(-1,'恐怖游轮') print(movies)
-
-
删 — 删除列表中的某个元素
- del 列表[下标] — 删除列表中指定下表对应的元素
movies = ['复仇者联盟', '盗梦空间', '怦然心动', '绿皮书', '肖生克的救赎', '触不可及'] print(movies) del movies[1] print(movies)#会删掉'盗梦空间' """ movies.remove('盗梦空间') print(movies) 这种方式也能删除,但是如果列表中有多个相同元素,那么它会删除最前面的那个 """
- 列表.pop() — 取走列表中最后一个元素
- 列表.pop(下表) – 取走列表中下表对应的元素
movies = ['复仇者联盟', '盗梦空间', '怦然心动', '绿皮书', '肖生克的救赎', '触不可及'] print(movies) movies.pop() print(movies) #movies = ['复仇者联盟', '盗梦空间', '怦然心动', '绿皮书', '肖生克的救赎'] movies.pop(0) print(movies) #movies = ['盗梦空间', '怦然心动', '绿皮书', '肖生克的救赎']
-
改 — 修改某个元素的值
- 列表[下标] = 新元素 ------ 修改列表中指定下标对应的元素为新元素
movies = ['复仇者联盟', '盗梦空间', '怦然心动', '绿皮书', '肖生克的救赎', '触不可及'] print(movies) movies[1] = '阿甘正传' print(movies)