第六章 循环语句

Range 方法

  1. 使用 range 可以快速生成指定范围内的列表元素
  2. range 生成的是列表元素,而不是列表本身
  3. range(100),生成 100个元素,从0开始,不包含100:0,1,2,...,98,99
  4. l = list(range(100)),创建一个列表,[0,1,2,...,98,99]
  5. range(4,12):4,5,6,7,8,9,10,11
  6. range(3,9,2):3,5,7

列表遍历

  1. 遍历:依次取出每个元素
  2. 循环语句:for item in l:
  3. 如果 for 语句中并没有用到 item 的值,可以用一个下划线 _ 来替代 item
  4. 列表、元组、字符串、range()都可以使用 for 遍历

For 循环

  1.  for in 循环遍历容器类型
  2.  for in + range 控制循环次数
  3. 断点的使用:点击资源管理器 先建立一个文件夹,在文件中新建一个 python 文件,在要观察的代码前加断点,然后点击调试,在“监视”一栏内添加要观察的变量,按 F11 单步执行。
  4. 举例:计算100以内所有偶数的和
# 计算 100 以内所有偶数的和
sum = 0
for i in range(100):
    if i % 2 == 0:
        sum = sum + i
print(sum)

For 练习

例 1. 提示用户输入5个数,组成一个列表,将这个列表中各个元素的值 * 2,计算这个新列表中所有元素的和

### 方法1
# 1. 提示用户输入 5 个数,组成一个列表
user_value = input('请输入5个整数,以空格隔开:')
print(user_value)
print(type(user_value))
user_value = user_value.split(' ')
print(user_value)
print(type(user_value))
# 2. 将用户输入的数转换为整数
i = 0
sum = 0
for item in user_value:
    item = int(item)
    user_value[i] = item
    i += 1
# 3. 乘 2,求和
for item in user_value:
    item = item * 2
    sum = sum + item

print(f'用户输入的5个整数是:{user_value},它们乘2之后的和是{sum}')

### 方法2
# 1. 提示用户输入 5 个数,组成一个列表
user_value = []
for i in range(1,6):
    num = input(f'请输入第{i}个数:')
    num = int(num)
    user_value.append(num)
# 2. 乘 2,求和
sum = 0
for item in user_value:
    item = item * 2
    sum = sum + item

print(f'用户输入的5个整数是:{user_value},它们乘2之后的和是{sum}')

例 2. 找出100以内所有7的倍数以及包含7的数,将它们放在一个列表中

l = []
for i in range(100):
    if (i % 7 == 0) or (i % 10 == 7) or (i // 10 == 7):
        l.append(i)
print(l)     

While循环

  1. while 条件表达式:
  2. 不确定循环次数但知道循环结束条件时,可以用while
  3. 循环控制关键词:break 和 continue (for 和 while 都可以用)
  4. break:终止整个循环
  5. continue:终止本轮循环,继续下一轮循环
  6. pass 循环体占位符

列表推导式

  1. 列表推导式可以快速构建新的数据序列
  2. [ 表达式 for 变量 in 列表 ]                         my_list2 = [ i * 2 for i in range(10) ]
  3. [ 表达式 for 变量 in 列表 if 筛选条件 ]       my_list2 = [ i * 2 for i in range(10) if i % 2 == 0 ]
# 找出100以内所有7的倍数以及包含7的数,将它们放在一个列表中
l = [i for i in range(100) if (i % 7 == 0) or (i % 10 == 7) or (i // 10 == 7)]
print(l)

推导式练习

例 1. 获取 ['Food','Moon','Loop']中每个元素的首字母,并将这三个首字母组成一个新的字符串

my_list = ['Food','Moon','Loop']
new_list = [i[0] for i in my_list]
new_list = ''.join(new_list)
print(new_list)

例 2. l1 = [2,4,6,8,10,12]; l2 = [3,6,9,12],找出同时出现在 l1 和 l2 中的元素

l1 = [2,4,6,8,10,12]
l2 = [3,6,9,12]
new_list = [i for i in l1 if i in l2]
print(new_list)

例 3. 将 [1,3,5,7,9]中所有元素打印在控制台上

[print(i) for i in range(1,10) if i % 2 != 0]

循环嵌套

## 生成一个二维列表
# 方法 1
l = []
item = []
for i in range(3):
    item = [] 
    for j in range(4):
        item.append(j)
    l.append(item)
print(l)
# 方法 2
l = [[j for j in range(4)] for i in range(3)]
print(l)

## 遍历一个二维列表中的所有元素
# 方法 1
for i in l:
    for j in i:
        print(j)
# 方法 2
[[print(j) for j in i] for i in l]

循环练习

例 1. 找到100-1000内最小的水仙花数。水仙花数:数字中每一位的3次幂之和等于它本身,如 407 = 4^3 + 0^3 + 7^3

l = []
for i in range(100,1000):
    ge = i % 10
    shi = i // 10 % 10
    bai = i // 100
    if i == ge ** 3 + shi ** 3 + bai ** 3:
        l.append(i)

result = min(l)
print(f'100-1000内水仙花有{l},其中最小的水仙花数是:{result}')

例 2.找出100以内所有的质数。质数:大于1,并且只能被1和它的本身整除

l = []
for i in range(2,100):
    j = list(range(2,i))
    remain = [i % item for item in j]
    if 0 not in remain:
        l.append(i)

print(f'100以内的质数有:{l}')

例 3. 在控制台上打印“九九乘法表”(print的使用方法)

for i in range(1,10):
    for j in range(1,10):
        print(f'{i} * {j} = {i*j}',end = '\t')
    print('\n')

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值