day3 课后总结和作业

day3 学习总结

  • for循环

    • 语法
    for 变量 in 序列:
        循环体
    #循环体就是需要重复执行的代码块
    #
    # 执行过程:让变量一次又一次地取序列中取值,每取一次执行一次,直到取完为止.
    
    
    • range函数
    range(N)  #里面有N个元素,产生的是0-N-1的数字序列
    range(M, N)  #产生M-(N-1)的数字序列
    range(M,N,step)  #产生[M,N)的数字序列,每次增加step
    
  • while循环

    • 语法
    while 条件语句:
        循环体
    # 执行过程:当条件语句为True时,就执行循环体,执行完再判断条件语句是否为True,以此类推,如果条件语句的结果是False,则循环结束.
    
    • for和while的选择
      • 若循环次数确定就用for循环
      • 若循环次数不确实就用while循环
    • 随机数
    import random
    num = random.randint(a, b)  
    # 产生一个a-b的随机整数,并且保存到变量num中.
    
  • 循环关键字

    • continue - 只能在循环中使用 出现continue结束一次循环,直接进入下次循环.
    • break - 只能在循环中使用 结束整个循环
      • while循环的套路
    while True:
        每次循环需要做的事情
        if 结束循环的条件:
            break
    
    • else
    # for循环
    for 变量 in 序列:
        循环体
    else:
        代码块
        
    # while循环
    while 条件语句:
        循环体
    else:
        代码块
        
    # else不影响原本循环的执行
    # else执行的条件是:循环自然死亡;若循环因break导致结束,则不执行else后面的代码.
    

课后作业

基础题

1.使用for和while循环输出 0~100内所有3的倍数。

# for循环
for x in range(0, 101, 3):
    print('x:', x)

# while循环
i = 0
while 0 <= i <= 100:
    i += 1
    if i % 3 == 0:
        print('i:', i)

2.使用for和while循环输出100~200内个位数或者十位数能被3整除的数。

#for循环

for c in range(100 , 200):
    if(c % 100) // 10 % 3 == 0 or c % 10 % 3 == 0:
        print('c:', c)

#while循环

i = 100
while 100 <= i <= 200:
    if (i % 100) // 10 % 3 == 0 or i % 10 % 3 == 0:
        print('i:', i)
    i += 1

进阶题

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

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

    count = 1
    a=int(input('输入一个正整数:'))
    while True:
        if a // 10 != 0:
            a = a // 10
            count += 1
        if a // 10 == 0:
            break
    print(count)
            
    
  2. 打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字⽴方和等于该数本身。例如:153是

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

for a in range(100,1000):
    if (a%10)**3+((a//10)%10)**3+(a//100)**3 == a:
        print(a)
        

挑战题

  1. 判断指定的数是否是素数(素数就是质数,即除了1和它本身以外不能被其他的数整除的数)
num = int(input('请输入一个数:'))
for r in range(2,num):
    if num % r == 0:
        print('不是质数')
        break
else:
    print('质数')

  1. 求斐波那契数列列中第n个数的值:1,1,2,3,5,8,13,21,34… (这儿的n可以是任意正整数,可以通过输入来确定)
n=int(input('请输入任意正整数:'))
fn_1 = 1
fn_2 = 1
fn = 1
for r in range(2, n):
    if n == 1 or n == 2:
        fn = 1
        fn_1 = 1
        fn_2 = 1
        break
    else:
        fn_2 = fn_1
        fn_1 = fn
        fn = fn_1 + fn_2
print(fn)
    
    

  1. 输出9*9口诀。 程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
  2. 这是经典的"百马百担"问题,有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?(可以直接使用穷举法)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值