day4-循环

day4-循环

4.1 for循环
# 循环结构  -  可以让代码重复执行(代码写一遍,执行多次)


"""
语法:
for 变量 in 序列:
    循环体
    
说明:
for、in      -   关键字;固定写法
变量         -   变量名(可以是已经定义过的变量的变量名,也可以是没有定义)
序列         -   序列就是Python中容器型数据类型对应的数据;例如:字符串、列表、字典、元组、集合、迭代器、生成器、range等
:           -   固定写法
循环体       -   和for保持一个缩进的一条或者多条语句(至少1条件); 循环体就是会被重复执行的代码

执行过程:
让变量去序列中取值,一个一个的取,取完为止,每取一个值就执行一次循环体。
for循环循环次数和序列中元素的个数有关
"""
for x in 'abc12':
    print(x, '====')

"""
执行过程:
x = 'a'  - print(x, '====')  ->  print('a', '====') 
x = 'b'  - print(x, '====')  ->  print('b', '====') 
...
"""

for x in 'abc12':
    print(x, '====')
print('+++++++')

# 思考:循环体执行100遍
for x in range(100):
    print('hello')
4.2 range函数
# 1.range函数  -  产生一个等差数列
# 1 2 3 4 5 6
# 1 3 5 7 9
# 11 21 31 41 51
# 10 9  8 7  6  5
"""
1) range(N)   -   产生[0, N),差是1的等差数列(N必须是正整数)。range(3) - 0,1,2; range(11) - 0,1,2,3,4,5,6,7,8,9,10
2) range(M, N)  -   产生[M, N),差是1的等差数列(M<N)。range(2, 6)  - 2,3,4,5; range(100, 1000)
                    range(-3, 3)  -  -3,-2,-1,0,1,2
3) range(M, N, step)  -  产生[M, N),差是step的等差数列。 
                         range(10, 4, -1)  - 10, 9, 8, 7, 6, 5
                         range(1, 10, 2)  - 1,3,5,7,9
"""
for x in range(11):
    print(x)

print('=====================================================')
for x in range(-3, 3):
    print(x)

print('=====================================================')
for x in range(1, 10, 2):
    print(x)
# 2.求和套路
# 练习:求1+2+3+...+100的和
# 1)定义一个变量保存最后的和,变量默认值是0
sum1 = 0
# 2)通过循环获取到要求和的数据
for x in range(1, 101):
    # 3) 取到一个数据就往保存和的变量中加一个数据
    sum1 += x  # sum1 = sum1 + x
# 练习: [45, 78, 90, 45, 67, 100, 90, 98, 76]
scores = [45, 78, 90, 45, 67, 100, 90, 98, 76]
total = 0
for x in scores:
    total += x
print('总分:', total)

# 3.统计个数的套路
# 练习:统计scores中不及格学生的个数
scores = [45, 78, 90, 45, 67, 100, 90, 98, 76]
# 1) 定义一个变量保存最后的个数,默认值是0
count = 0
# 2) 通过循环获取统计对象
for x in scores:
    # 3) 判断获取到的对象是否符合个数加1的条件
    if x < 60:
        count += 1
print('不及格人数:', count)

# 练习:统计100以内(1~99)能被3整除的数的个数
# 方法一:
count = 0
for x in range(1, 100):
    if x % 3 == 0:
        count += 1
print('被3整除的数的个数:', count)

# 方法二:
count = 0
for x in range(3, 100, 3):
    count += 1
print('被3整除的数的个数:', count)

# 练习:计算2*4*6*8*...*20的结果
total = 1
for x in range(2, 21, 2):
    total *= x
print(total)        # 3715891200

# 练习:计算100以内所有能被3整除但是不能被5整除的数的和
# 方法一:
total = 0
for x in range(1, 100):
    if x % 3 == 0 and x % 5 != 0:
        total += x
print(total)

# 方法二:
total = 0
for x in range(3, 100, 3):
    if x % 5 != 0:
        total += x
print(total)
4.3 while循环
# 1. while循环
"""
语法:
while 条件语句:
    循环体
    
其他代码
    
说明:
while       -   关键字;固定写法
条件语句      -   任何有结果的表达式,比如:具体的数据、已经赋值过的变量、运算表达式(赋值运算除外)
:           -   固定写法
循环体       -    和while保持一个缩进的一条或者多条语句(至少一条); 循环体就是需要重复执行的代码

执行过程:
先判断条件语句是否为True,如果为True就执行循环体,执行完再判断条件语句是否为True,为True又执行循环体...
以此类推,如果判断条件语句的结果是False循环就结束。
"""
# 练习:打印1,2,3,4,5
for x in range(1, 6):
    print(x)


num = 1
while num < 6:
    print(num)
    num += 1

# 控制循环执行100遍
num = 0
while num < 100:
    print('hello')
    num += 1

# 2. for和while的选择
# 如果循环次数确定就使用for循环;循环次数不确定就使用while循环。

# 练习:提示用户输入数据,直到输入的值是0为止。
"""
请输入一个数: 19
请输入一个数: 20
请输入一个数: 8
...
请输入一个数:0
结束!
"""
# value = '10990'   # value的初始值只要不是'0'都可以
# while value != '0':
#     value = input('请输入一个数:')

# 练习:完成猜数字游戏
"""
游戏开始产生一个0~100的随机数,让用户不断输入数字,直到输入的数字和产生的随机相等为止。如果猜错了给出大了或者小了的提示。

45
请输入数字(0~100):50
大了!
请输入数字(0~100):25
小了
请输入数字(0~100):30
小了
请输入数字(0~100):45
恭喜你,猜对了!
"""
import random
# random.randint(a, b)  - 产生a到b的随机数
value = random.randint(0, 100)    # value的值就是0~100的随机数

input_num = int(input('请输入数字(0~100):'))
while input_num != value:
    if input_num > value:
        print('大了!')
    else:
        print('小了!')
    input_num = int(input('请输入数字(0~100):'))

print('恭喜你,猜对了!')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值