day4 循环、列表
一、for循环和range函数
1、for循环
1)语法:
for 变量 in 序列:
循环体
2、range函数 - 创建等差数列
1)range(N) – 创建[0,N)的等差数列,差值是1。
2)range(M,N) — 创建[M,N)的等差数列,差为1。
3)range(M,N,step) — 创建[M,N),差是step。
# 练习:使用range函数生成以下等差数列
# 1、7 5 3 1
for x in range(7,0,-2):
print(x)
3、累计求和
# 案例1: 求1+2+3+...100的和
sum = 0 # 定义变量
for x in range(1,101): # 通过for循环获取需求和的每一个数据
sum += x # 在循环体中取到一个需要求和的数据,就往结果中加一个值
print(sum)
# 案例2:求nums中所有的偶数的和
num = [89,10,22,11,4,8,9]
t = 0
for x in num:
if x % 2 == 0:
t += x
print(t)
4.统计个数
# 案例:统计100以内所有能被3整除的数的个数
count = 0
for x in range(1,100):
if x % 3 == 0:
count += 1
print(count)
二、while循环
1、语法:
while 条件语句:
循环体
2、执行过程:
先判断条件语句是否成立,如果成立就执行循环体,执行完循环体在判断条件语句是否成立,成立在执行循环,不成立则结束循环。
# 案例:使用while循环打印5次“hello world"
x = 0
while x < 5"
print("hello world")
x += 1
三、continue 和 break
1、continue - 结束一次循环(在循环时遇到了continue,那么这次循环结束,直接进入下一次循环)
for x in range(10):
if x % 3 == 0: # 条件成立,则遇到continue 结束循环,
continue #条件不成立执行下一次循环
print(x) # 1 2 4 5 7 8
2、break ---- 结束整个循环(执行循环时遇到了break,整个循环结束,循环体剩下的部分也不执行,也不进入下一次循环)
for x in range(1,10):
print(x)
if x % 4 == 2:
break # 1 2
3、当while遇到break
- 初学者使用while循环的套路
while Ture:
需要重复执行的操作
if 循环结束的条件
break
4、使用while 的场景
- 死循环
- 循环次数不确定,在写代码的时候无法确定循环的次数,因为次数由用户行为控制。
# 练习:写一个猜数字游戏
# 产生0-100 的随机数,提示用户输入数字,直到输入正确的为止,输入错误的时候给出对应的提示。
from random import randint
number = randint(0,100)
while Ture:
n = int(input("请输入一个数"))
if n > number:
print("大了,在小点")
elif n < number:
print("小了,在大点")
else:
print("恭喜你猜对了")
break
四、列表
1、认识列表 - list (在程序中同时处理多个数据时,可用列表)
- 列表是系统类型中容器型数据类型的一种
- 列表是容器,将[]作为容器的标志,里面多个元素用逗号隔开:[数据1,数据2,数据3,…]
- 列表是可变的(支持增加,删除、修改):列表是有序的(顺序影响结果;支持下标操作)
- 列表的元素:任何类型的数据都可以作为列表的元素,而且同一个列表中的元素的类型可以不一样
- 空列表 list = []
七、列表的使用:查、增、删、改
1、查 - 获取列表的元素
1)查单个 - 获取列表中的某一个元素
-
语法:
列表[下标] - 获取列表中指定下标对应的元素
-
说明:
列表 - - 可以是保存列表的变量,也可以是一个具体的列表
[] - - 固定写法
下标 - - 列表中的元素在列表中的位置信息。
列表中的每个元素都由两个下标值:a:从前往后从0开始不断增加的下标值 b: 从后往前从-1开始不断减少的下标值
2)遍历 - 一个一个的获取列表中所有的元素
#案例:统计socres 中不及格色学生个数
socres = [89,78,67,10,45,99,50]
count = 0
for x in socres:
if x < 60:
count += 1
print(count)
2、增 - 添加元素
- 列表.append(元素) – 在列表的最添加一个元素
num = [12,21]
num.append("1")
print(num)
# 练习1:提取nums中的所有元素的个位数
nums = [89,78,90,64,55,71,34]
new_nums = []
for x in nums:
news_nums.append(x % 10)
print(news_nums) #[9, 8, 0, 4, 5, 1, 4]
# 练习2:提取num中的所有偶数
num = [89,78,90,64,55,71,34]
new_nums =[]
for x in num:
if x % 2 == 0:
new_nums.append(x)
print(new_nums)
# [78, 90, 64, 34]
- 列表.insert(下标,元素) - 将元素插入到列表中指定的下标对应的元素前
num = [89,78,90,64,55,71,34]
num.insert(1,"a")
print(num)
# [89, 'a', 78, 90, 64, 55, 71, 34]
3、删 - 删除列表中的某个元素
- del 列表[下标] - 删除列表中指定下标对应的元素
num = [89,78,90,64,55,71,34]
del num[1]
print(num)
# [89, 90, 64, 55, 71, 34]
- 列表.remove(元素) – 删除列表中的元素(如果元素有多个,则删最前面的那个)
num = [89,78,90,64,55,71,34]
num.remove(34)
print(num)
# [89, 78, 90, 64, 55, 71]
- 列表.pop() — 取走列表中的最后一个元素
num = [89,78,90,64,55,71,34]
result = num.pop()
print(num,result)
# [89, 78, 90, 64, 55, 71] 34
- 列表.pop(下标) —取走列表中指定下标对应的元素并且返回
num = [89,78,90,64,55,71,34]
result = num.pop(1)
print(num,result)
# [89, 90, 64, 55, 71, 34] 78
4、改 – 修改某个元素的值
- 列表[] = 新元素 – 修改列表中指定下标对应的元素为新元素
num = [89,78,90,64,55,71,34]
num[1] = "ni"
print(num)
# [89, 'ni', 90, 64, 55, 71, 34]