day04 - 循环和循环关键字

1. while循环

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

说明:
while       -   关键字;固定写法
条件语句     -    和if中的条件语句的要求一样
:           -   固定写法
循环体       -   结构上,和while保持一个缩进的一条或者多条语句;逻辑上,需要重复执行的代码

执行过程:不断判断条件语句是否为True,如果是就执行循环体,否则循环就结束。
"""
x = 0
while x < 5:
    print('===========')
    x += 1


# 练习1:打印1~100所有的整数
x = 1
while x <= 100:
    print(x)
    x += 1


# 练习2: 打印1-100所有的偶数:2,4,6,8,10,...,100
print('===============================')
x = 2
while x <= 100:
    print(x)
    x += 2


# 练习3:打印:100, 98, 96, 94, 92,...,4, 2, 0
x = 100
while x >= 0:
    print(x)
    x -= 2


# 2. for循环和while循环的选择
"""
关系:for能解决的问题,while循环都可以解决;while循环能解决的问题,for循环不一定可以解决。
     但是for循环比起while循环,控制次数更简单(容易)
    
使用建议:能用for循环解决的问题都用for,解决不了的才考虑while。
        循环次数确定  -  使用for
        循环次数不确定  - 只能使用while循环
"""

# 练习:提示用户不断输入密码,直到输入正确为止
# pw = '11029'
# i_pw = input('请输入密码:')
# while pw != i_pw:
#     i_pw = input('密码错误,请重新输入密码:')


# 练习1:猜数字游戏
"""
系统随机产生一个0~100的随机数
用户不断输入数字,直到输入的数字和产生的数字相等,游戏结束。
如果猜错了,给出大了或者小了的提示信息

假设随机数是:30
请输入数字(0~100): 50
大了,再小点儿
请输入数字(0~100):25
小了,再大点儿
请输入数字(0~100):35
大了,再小点儿
...
请输入数字(0~100):30
恭喜你,猜对了!
"""
# 补充:Python创建随机数
from random import randint
# x = randint(10, 20)     # 产生一个10到20的随机数,并且保存到变量x中
num = randint(0, 100)
i_num = -1
while num != i_num:
    i_num = int(input('请输入一个整数(0~100):'))
    if i_num > num:
        print('大了,再小点儿')
    elif i_num < num:
        print('小了,再大点儿')

print('恭喜你,猜对了!')

02循环关键字continue和break

# 1.continue和break
"""
continue和break都只能出现在循环体中。

continue  -  结束一次循环, 每次在执行循环体的时候,如果遇到continue,那么这次循环结束,直接进入下一次循环
break     -  结束整个循环, 在执行循环体的时候,如果遇到break,那么整个循环直接结束,不会进入下次循环
"""
for x in range(5):
    print(x)
    print('======')
    continue
    print('++++++')


print('-------------------------华丽的分割线--------------------------')
for x in range(10):
    if x % 2:
        continue
    print(x)


"""
x = 0: if 0 % 2 -> if 0 -> if False; print(0)
x = 1: if 1 % 2 -> if 1 -> if True  -> continue
x = 2: if 2 % 2 -> if 0 -> if False; print(2)
...
"""
print('-------------------------华丽的分割线--------------------------')
x = 0
while x <= 10:
    print(x)
    if x % 2 == 0:
        x += 3
        continue
    x += 1

"""
x = 0
x <= 10 -> 0 <= 10 -> True -> print(0); if 0 % 2 == 0 -> if True -> x += 3 -> x = 3 -> continue
x <= 10 -> 3 <= 10 -> True -> print(3); if 3 % 2 == 0 -> if False; x += 1 -> x = 4
x <= 10 -> 4 <= 10 -> True -> print(4); if 4 % 2 == 0 -> if True -> x += 3 -> x = 7 -> continue
x <= 10 -> 7 <= 10 -> True -> print(7); if 7 % 2 == 0 -> if False; x += 1 -> x = 8
x <= 10 -> 8 <= 10 -> True -> print(8); if 8 % 2 == 0 -> if True -> x += 3 -> x = 11 -> continue
x <= 10 -> 11 <= 10 -> False -> 整个循环结束

0
3
4
7
8
"""

print('-------------------------华丽的分割线--------------------------')
for x in range(5):
    print(x)
    print('======')
    break
    print('++++++')


print('-------------------------华丽的分割线--------------------------')
for x in range(5):
    print(x)
    if x % 2:
        break

# 2. while和break
"""
while循环使用的通过格式:

while True:
    需要重复执行的代码
    if 循环结束的条件:
        break    
"""

# pw = '123456'
# while True:
#     i_pw = input('请输入密码:')
#
#     if i_pw == pw:
#         break

# 练习:输入任意一个正整数,求他是几位数?
# 123 -> 3   981-> 3; 98 -> 2; 982734  -> 6
# 123 // 10 -> 12 // 10 -> 1 // 10 -> 0
# 98 // 10  -> 9 // 10 -> 0
# 982734 // 10 -> 98273 // 10 -> 9827 // 10 -> 982 // 10 -> 98 // 10 -> 9 // 10 -> 0
# num = int(input('请输入一个任意正整数:'))
# count = 0
# while True:
#     num //= 10
#     count += 1
#     if num == 0:
#         break
# print(count)


# 3. 循环else
"""
完整的循环结构:
1)完整的for循环
for 变量 in 序列:
    循环体
else:
    代码段


2) 完整的while循环
while 条件语句:
    循环体
else:
    代码段
    
else的作用:
else的存在不会影响原来循环的执行;
如果循环不是因为遇到break而结束的else后的代码段就会在循环结束后执行,否则不执行
"""
print('-------------------------华丽的分割线--------------------------')
for x in range(5):
    if x == 3:
        break
    print(x, '=======')
else:
    print('++++')


# 练习:判断指定的数是否是素数(素数就是质数,即除了1和它本身以外不能被其他的数整除的数)
# 2、3、5、7、11、13  -  素数
# 4、10、6、 8、 12  - 非素数
# 思路:素数 - 除了1和它本身不能被别的数整除, 2 ~ 数-1 如果没有一个能被它整除的数就是素数
print('-------------------------华丽的分割线--------------------------')
num = 13
for x in range(2, num):
    if num % x == 0:
        print(num, '不是素数')
        break
else:
    print(num, '是素数')

# 优化方案:
num = 13
for x in range(2, int(num**0.5) + 1):
    if num % x == 0:
        print(num, '不是素数')
        break
else:
    print(num, '是素数')

第一周作业

一、选择题

  1. 下列变量名中不合法的是?(C)

    A. abc

    B. Npc

    C. 1name

    D ab_cd

  2. 下列选项中不属于关键字的是?(D)

    A. and

    B. print

    C. True

    D. in

  3. 下面哪个选项对应的代码写法是正确的?(C)

    A.

    print('Python')
      print('新手村')
    

    B.

    print('Python') print('新手村')
    

    C.

    print('Python')
    print('新手村')
    

    D.

    print('Python''新手村')
    
  4. 下面选项中能打印出50的是?( B )

    A.

    print('100 - 50')
    

    B.

    print(100 - 50)
    
  5. 关于引号,下面选项中使用正确的是?( D )

    A.

    print('hello)
    

    B.

    print("hello')
    

    C.

    print(“hello”)
    

    D.

    print("hello")
    

二、编程题

  1. 写代码在控制台打印 good good study, day day up!

    print('good good study, day day up!')
    
  2. 写代码在控制台打印5次 you see see, one day day!

    for x in range(5):
        print('you see see, one day day!')
        
    
  3. 写代码打印数字 11、12、13、… 21

for x in range(11, 22):
    print(x)
  1. 写代码打印数字 11,13,15,17,…99

    for x in range(11, 100, 2):
        print(x)
    
  2. 写代码打印数字:10、9、8、7、6、5

    for x in range(10, 4, -1):
        print(x)
    
  3. 写代码计算:1+2+3+4+…+20 的和

    sum1 = 0
    for x in range(1, 21):
        sum1 += x
    print(sum1)
    
  4. 写代码计算100以内所有偶数的和

    sum2 = 0
    for x in range(101):
        if x % 2 == 0:
            sum2 += x
    print(sum2)
    
  5. 写代码统计100~200中个位数是3的数的个数

    count = 0
    for x in range(100, 200):
        if x % 10 == 3:
            count += 1
    print(count)
    
  6. 写代码计算2*3*4*5*...*9的结果

    product = 1
    for x in range(2, 10):
        product *= x
    print(product)
    
  7. 输入一个数,如果输入的数是偶数就打印偶数否则打印奇数

    num = int(input('请输入一个数'))
    if num % 2 == 0:
        print('偶数')
    else:
        print('奇数')
    
  8. 统计1000以内能被3整除但是不能被5整除的数的个数。

    count = 0
    for x in range(1000):
        if x % 3 == 0 and x % 5 != 0:
            count += 1
    print(count)
    
  9. 判断101-200之间有多少个素数,并输出所有素数。

    count = 0
    for x in range(101, 200):
        for i in range(2, x-1):
            if x % i == 0:
                break
        else:
            print(x, '是素数')
            count += 1
    print(count)
    
  10. 求整数1~100的累加值,但要求跳过所有个位为3的数。

    sum3 = 0
    for x in range(1, 101):
        if x % 10 != 3:
            sum3 += x
    print(sum3)
    
  11. 有⼀分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的第20个分数

    i = 1
    j = 2
    x = 0
    count = 1
    for x in range(19):
        i, j = j, i + j
        count += 1
        x += 1
    print(j, "/", i)
    
  12. 写程序计算 n 的阶乘 n! 的结果

    num = 1
    n = 10
    for x in range(1, n + 1):
        num *= x
    print(num)
    
  13. 求1+2!+3!+…+20!的和

    sum4 = 0
    num = 1
    n = 20
    for x in range(1, n + 1):
        num *= x
        sum4 += num
    print(sum4)
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值