day04-循环和列表

day04-循环和列表

01for循环和range函数

1. for 循环

语法:

for 变量名 in 序列:
	循环体
for x in 'abc':
    print('hello world')
输出结果:

hello world
hello world
hello world

2. range函数

功能: 创建等差数列

方法
range(N)创建[0,N)的等差数列,差是1
例如: range(6) = 0 1 2 3 4 5
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
range(M,N,step)创建[M,N)的等差数列,差是step
range(2,10,2) = 2 4 6 8
range(10,2,-2) = 10 8 6 4
  • 等差数列(举例)
    • 1 2 3 4 5
    • 10 12 14 16 18
    • 10 20 30
    • 30 20 10 0
# 练习
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

# 1
for x in range(11):
    print(x)

# 2
for x in range(9, 14):
    print(x)

# 3
for x in range(7, 0, -2):
    print(x)

# 4
for x in range(5, -1, -1):
    print(x)

# 5
for x in range(12, 22, 3):
    print(x)

3. 求和套路

#案例1: 求1+2+3+...+100的和
#定义变量保存最后的和,变量默认值是0

sum1 = 0
for x in range(1, 101):
    # 在循环体中取到一个需要求和的数据,就往结果中加一个值
    sum1 += x
print(sum1)
# 案例2: 求所有学生的总成绩
scores = [98, 80, 70, 67, 55, 99, 81]
total_score = 0
for x in scores:
    total_score += x
print(total_score)
# 练习1: 求100+101+102+...+200的结果
sum1 = 0
for x in range(100, 201):
    sum1 += x
print(sum1)
# 练习2: 求nums中所有元素的和
nums = [89, 10, 22, 11, 4, 8, 9]
total = 0
for x in nums:
    total += x
print(total)
# 练习3: 求nums中所有偶数的和
nums = [89, 10, 22, 11, 4, 8, 9]
nums_re = 0
for x in nums:
    if x % 2 == 0:
        nums_re += x
print(nums_re)

4. 统计个数

# 案例1: 统计100以内所有能被3整除的数的个数

count = 0
for x in range(1, 100):
    if x % 3 == 0:
        count += 1
print(count)
# 练习: 统计nums中奇数的个数
nums = [89, 10, 22, 11, 4, 8, 9]
count = 0
for x in nums:
    if x % 2 != 0:
        count += 1
print(count)

02while循环

1. while 循环

语法:
 
while 条件语句:
    循环体

执行过程: 先判断条件语句是否成立,如果成立就执行循环体,执行完循环体再判断条件语句是否成立,成立就再执行循环体,以此类推…,直到条件语句的结果为False整个循环结束

# 案例: 使用while循环控制程序打印5次"hello world"
x = 0
while x < 5:
    print('hello world')
    x += 1
使用建议: 遇到循环的问题,优先考虑for循环,for循环解决不了的情况才选择while

03continue和break

1. continue 和 break 是只能在循环体中使用的关键字
2. continue - 结束一次循环

在执行循环体的时候如果遇到了continue,那么这一次循环结束,直接进入下次循环

for x in range(10):
    if x % 3 == 0:
        continue
    print(x)
3. break - 结束整个循环

执行循环体的时候如果遇到break,整个循环直接结束(循环体剩下的部分不执行,也不再进入下一次循环)

for x in range(1, 10):
    if x % 4 == 2:
        break
    print(x)
4. 当while遇到break
初学者使用while循环的套路:

while True:
    需要重复执行的操作
    if 循环结束的条件:
        break
5. 使用while循环的场景

死循环

循环次数不确定: 程序员在写代码的时候无法确定循环次数,因为次数由用户行为控制

# 案例: 提示用户输入密码,直到输入正确为止
password = '123456'
while True:
    value = input('请输入密码:')
    if value == password:
        break
# 练习: 写一个猜数字游戏
# 产生一个 0 - 100 的随机数,然后提示用户输入数字,直到输入正确为止
# 错误的时候给出对应的提示

from random import randint
count = 0
num = randint(0, 100)
while count <= 10:
    value = int(input('请输入一个0-100之间的整数:'))
    if value == num:
        print('恭喜你猜对啦!')
        count += 1
        break
    elif value > num:
        print('大了,再小点儿!')
        count += 1
    else:
        print('小了,再大点儿!')
        count += 1

04列表

思考: 如何定义变量保存10个学生的成绩

# 求平均分
scores = [89, 90, 77, 69, 90, 52]
print(sum(scores) / len(scores))
# 求最高分
print(max(scores))

结论: 如果需要在程序中同时处理多个数据,就可以使用列表

1. 认识列表

列表是系统类型中容器型数据类型中的一种

列表是容器,将[]作为容器的标志,里面多个元素用逗号隔开: [数据1, 数据2, 数据3, …]

列表是可变的(列表支持增、删、改)

列表是有序的(顺序影响结果)

列表的元素: 任何类型的数据都可以作为列表的元素,而且同一个列表中元素的类型可以不一样

# 列表有序
list1 = [10, 20, 30]
print([10, 20] == [20, 10])   # False
# 任何类型的数据都可以是列表的元素
list2 = [10, 2.34, 'abc', False]
print(list2)

list3 = [10, 20, [30, 40]]
print(list3)
# 空列表
list4 = []

05增删改查

1. 查 – 获取列表元素

查单个 – 获取列表中的某一个元素

语法:

列表[下标]  - 获取列表中指定下标对应的元素
说明
列表可以是保存列表的变量,也可以是一个具体的列表
[]固定写法
下标列表中的元素在列表中的位置信息
列表中的每个元素都有两个下标值:
a. 从前往后从0开始不断增加的下标值
b. 从后往前从-1开始不断减小的下标值
nums = [100, 200, 300, 400]
print(nums[2], nums[-2])  # 300 300
movies = ['复仇者联盟', '盗梦空间', '怦然心动']
print(movies[-2])   # 盗梦空间
# print(movies[10])   # IndexError: list index out of range

遍历 – 一个一个地获取列表中所有的元素

movies = ['复仇者联盟', '盗梦空间', '怦然心动']
for x in movies:
    print(x)
# 案例: 统计scores中不及格学生的个数
count = 0
scores = [89, 78, 67, 10, 45, 99, 50]
for x in scores:
    if x < 60:
        count += 1
print(f'不及格学生的个数:{count}')
2. 增 – 添加元素

列表.append(元素) – 在列表的最后添加一个元素

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(f'列表中所有的偶数有:{new_nums}')
# 练习2: 提取nums中所有元素的个位数
# [9, 8, 0, 4, 5, 1, 4]
nums = [89, 78, 90, 64, 55, 71, 34]
new_nums = []
for x in nums:
    ge = x % 10
    new_nums.append(ge)
print(new_nums)

列表.insert(下标, 元素) - - 将元素插入到列表中指定下标对应的元素前

movies = ['复仇者联盟', '盗梦空间', '怦然心动']
movies.insert(-1, '泰坦尼克号')
print(movies)
3. 删 - 删除列表中的某个元素

del 列表[下标] – 删除列表中指定下标对应的元素

movies = ['复仇者联盟', '盗梦空间', '怦然心动']
del movies[1]
print(movies)

# 结果: ['复仇者联盟', '怦然心动']

列表.remove(元素) – 删除列表中指定的元素(如果元素有多个,会删最前面的那一个)

movies = ['复仇者联盟', '盗梦空间', '怦然心动']
movies.remove('盗梦空间')
print(movies)

# 结果: ['复仇者联盟', '怦然心动']

列表.pop() - 取走列表中最后一个元素并且返回

列表.pop(下标)取走列表中指定下标对应的元素并且返回

movies = ['复仇者联盟', '盗梦空间', '怦然心动']
result = movies.pop()
print(result)

# 结果: 怦然心动
4. 改 – 修改某个元素的值

列表[下标] = 新元素 – 修改列表中指定下标对应的元素为新元素

movies = ['复仇者联盟', '盗梦空间', '怦然心动', '绿皮书']
movies[1] = '阿甘正传'
print(movies)

# 结果: ['复仇者联盟', '阿甘正传', '怦然心动', '绿皮书']
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值