2021-4-28课程总结

2021-4-28课程总结

1. for循环

语法:
for 变量 in 序列:
循环体

说明:
for、in - 关键字,固定写法

  1. 变量
  • 变量名(可以是没有定义过的变量的变量名,也可以是已经定义过的变量的变量名)
  1. 序列
  • 容器型数据类型的数据,常见序列:字符串、列表、元组、字典、集合、迭代器、生成器、range等。

  • 非容器数据类型:数字、布尔值

  • 是固定写法
  1. 循环体
  • 从结构上来讲。和for保持一个缩进的一条或者多条语句、(循环体就是需要重复执行的代码)

执行过程:
让变量去序列里取值。一个一个的取,取完为止,每取一个值就执行一次循环体。
(序列中元素的个数决定for循环循环次数)

for x in 'abc':
    print('hello world!')

第一次:x = ‘a’;print(‘hello world!’)
第二次:x = ‘b’;print(‘hello world!’)
第三次:x = ‘c’;print(‘hello world!’)
循环结束!

range函数

产生指定范围的数字序列

  1. range(N) - 它的功能是产生0~N-1的数字序列,例如:range(3) - 产生一个数字序列,里面的元素是0、1、2
  2. range(M,N) - 产生M~N-1的数字序列,例如:range(10,15) - 产生一个数字序列,里面的元素是10、11、12、13、14
  3. range(M,N,step) - 步长 产生[M,N]的数字序列,步长是step(每次增加step)

2. while循环

语法:
while 条件语句:
代码段(循环体)

说明:

  1. while - 关键字,固定写法
  2. 条件语句 - 任何有结果的表达式(除了赋值语句)和if条件语句是一样的】
  3. : - 冒号 - 固定写法
  4. 循环体 - 和while保持一个缩进的一条或者多条语句(需要重复执行代码)

执行过程:

  • 先判断条件语句是否为True,如果是就执行循环体;执行完循环体,再判断条件语句是否为True,
  • 为True就再执行循环体…以此类推,如果条件语句的结果是False循环就结束
for和while的选择
  • 当循环次数确定的时候用for循环,循环次数不确定的时候用while循环
循环关键字:continue、break、else
  1. continue - 结束一次循环(只能在循环体中使用)
    执行循环体的时候如果遇到continue,当次循环直接结束,直接进入下次循环
for x in range(10,20):
    if x % 3 ==0:
        continue
    print('x',x)
  1. break - 结束整个循环(只能在循环体中使用)
    执行循环体的时候如果遇到break,整个循环直接结束
  • 使用while循环的套路
    while True: 每次循环要做的事情 if 循环结束的条件: break
  1. else
  • else的存在不影响原来循环的执行;
  • else后面的代码段在循环自然死亡的时候会执行,循环因为遇到break而结束的时候else后面的代码不会执行
for x in range(3):
    print('hello world!')
    if x == 1:
        break
else:
    print('交代遗言!')

基础题

  1. 使用for和while循环输出 0~100内所有3的倍数。
for num in range(3,100,3):
    print(num)

num = 1
while 0< num <100:
    if num % 3 ==0:
        print(num)
    num += 1
  1. 使用for和while循环输出100~200内个位数或者十位数能被3整除的数。
for num1 in range(103,200,3):
    if num1 % 10 !=0 and num1 // 10 % 10 % 3 ==0:
        print(num1)

num = 101
while 100 < num < 200:
    num += 1
    if num % 10 !=0 and num // 10 % 10 % 3 == 0 and num % 10 % 3 ==0:
        print(num)
        

进阶题

  1. 使用循环计算1*2*3*4*...*10的结果。
num = 1
for i in range(2,11):
    num *= i
print(num)
  1. 统计100以内个位数是2并且能够被3整除的数的个数。
for num in range(2,100,10):
    if num % 3 ==0:
        print(num)
  1. 输入任意一个正整数,求他是几位数?

    注意: 这儿不能使用字符串,只能用循环

  2. 打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如:153是

    一个水仙花数,因为 1³ + 5³ + 3³ 等于 153。

    for num in range(100,999):
        if (num // 100) ** 3 + (num // 10 % 10) ** 3 + (num %10) ** 3 ==num:
            print(num,'是水仙花数')
    
    

挑战题

  1. 判断指定的数是否是素数(素数就是质数,即除了1和它本身以外不能被其他的数整除的数)
num = int(input('请输入一个整数:'))
count = 0
for i in range(2,num):
    if num % i ==0:
        count += 1
        print(num,'不是素数')
        break
else:
    print(num,'是素数')
  1. 求斐波那契数列列中第n个数的值:1,1,2,3,5,8,13,21,34… (这儿的n可以是任意正整数,可以通过输入来确定)
  2. 输出9*9口诀。 程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
  3. 这是经典的"百马百担"问题,有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?(可以直接使用穷举法)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值