第四课的笔记

第四课的笔记

1.for结合range的小案例

#1.求1+2+3+...+99+100
"""
产生一个容器 容器放着1-100的数据
遍历容器取值,取出来一个累加起来
注意:和随着取值 会发生变化的 【定义一个变量 用来接受累加和的值】
    变量名使用等号进行赋值时,
"""
total = 0  #放在循环的外面 避免每次循环重置
for i in range(1,101):
    total += i   #total = total + i
    """
    第一次 in 的时候 i = 1
       total += i ===> total = total + i =1
    第二次 in 的时候 i = 2
       total += i ===> total = total + i =1 + 2 = 3
    第二次 in 的时候 i = 3
       total += i ===> total = total + i =1 + 2 + 3 = 6
    """
print(total)

#求1-2+3-4+5-6+...-98+99-100
total = 0
for i in range(1,101):
    if i % 2 == 0:
      total -= i
    else:
      total += i
print(total)

#求1**2 + 2**2 + 3**2 +...+ 10**2
total = 0
for i in range(1,11):
    i = i **2
    total += i
print(total)

#求1-100中能被3整除且个位数为5的数据的个数
total = 0
for i in range(1,101):
    if i % 3 == 0 and i % 10 == 5:
        total += 1
print("个数为:",total)

2.关键字break和continue

""
breakcontinue
    都是应用在循环结构语句中,只能对循环起作用
    break的作用是中断它所在的循环 【退出循环】
    continue的作用[循环一次一次执行的]是, 结束当前次[循环体中后面的代码不再执行],
        跳到循环判断的位置,再决定是否开启下一次 [判断成立的时候 开启下一次]
"""
# 演示continue的作用
# 打印1-10中的偶数
for i in range(1, 11):
    # 判断这个数据是否是偶数 是的话 执行打印操作
    if i % 2 == 0:
        print(i)

# 换一种思路: 判断是否为奇数 如果是奇数 跳过这一次循环 继续拿下一个数
for j in range(1, 11):
    if j % 2 == 1:
        continue
    print(j)

# 利用continue写 数7游戏
# 1-100中 遇到7 或者 7的倍数 跳过  否则是输出
"""
1. 使用range 生成1-100的数列 
2. 遍历逐个获取数据
3. 判断 获取的数据 是否是7的倍数 或者 带7
        带有7 有两种情况
            个位   %10 == 7
            十位  //10%10 == 7
        7的倍数
            %7 == 0
"""
for m in range(1, 101):
    if m % 10 == 7 or m // 10 % 10 == 7 or m % 7 == 0:
        continue
    print(m)


"""
break 是结束所在的循环 
    一般循环结束是  循环条件不成立或者容器中没有数据可拿时  结束循环
"""
for n in range(1, 11):
    print(n)
    if n == 5:
        break


# 需求:
# 获取 1-100中 3的倍数且个位数为5  当获取到第二个的时候 结束获取
"""
思路:
    获取的时候还需要计数  当计数器为2的时候 结束循环
"""
count = 0  # 计数器
for k in range(1, 101):
    if k % 3 == 0 and k % 10 == 5:
        count += 1  # 计算器+1
        print(k)

    # 判断计算器是否为2 结束
    if count == 2:
        break

3.while循环结构

"""
语法:
    while 条件循环:
        循环体代码
解读:
   只要条件成立,程序就一直在此循环,直到循环条件不成立
"""
# 输出1-10之间的数据
#for循环的思想:需要一个容器,容器中存放在1-10
for i in range(1,11):
    print(i)
print('=============')
"""
1.重复做的操作是什么 === 打印数据 每次打印的都是1个
2.做这件事情的条件 ==== 只要打印的数据没有到10  就得一直打印

"""
#根据这两件事情,需要哪些数据支持
#打印数据 每打印1次 数据要在原来的基础上+1
#也就是说要打印的数据是变化的  就得设置标记名给其进行标记
num = 1
#循环的操作
while num <= 10:
    print(num)
    #数据还在原来的基础上+1
    num += 1
print('循环结束时 num的值',num)


#1-10中的偶数 使用while打印1-10中的偶数
#定义一个起始值
m = 1
#循环 数据进行递增
while m <= 10:
    if m % 2 == 0:
        print(m)
    m += 1


"""
使用while循环 完成1+2+3+..+100
"""
i = 1
total = 0
while i <= 100:
    total += i
    i = i + 1
print(total)

#求1-2+3-4+5-6+...-98+99-100
total = 0
i = 1
while i <= 100:
    if i % 2 == 0:
        total -= i
    else:
        total += i
    i = i + 1
print(total)

#求1-100中能被3整除且个位数为5的数据的个数
total = 0
i = 1
while i <= 100:
    if i % 3 == 0 and i % 10 == 5:
        total += 1
    i = i + 1
print("个数为:",total)



"""
循环结束的场景:
1.明确循环次数 --- for-in循环 遍历容器,容器中有几个数据 循环就执行几次
2.明确结束状态的 ---while循环
      while循环条件:
        满足条件就执行
        
经过上面代码的演示 while也可以适用于明确循环次数的,只不过使用while书写麻烦了一些,所以建议使用for-in循环
"""
#案例:有1023个桃子,猴子每天吃桃子剩余个数的一半多1个,问多少天能吃完
#来操作的时候 循环次数不明确 就是用while循环
"""
1.重复做的事情是什么  桃子个数/2 + 1
2.结束做这件事情的状态[只要没有达到这个状态就不会结束]

"""
"""
需要准备的数据:
1.需要一个变量名 接受桃子的个数 起始值时1023
2.计数器 记录吃的天数
"""

peach_count = 1023  #桃子的个数
day = 0  #计数器【天数】
while peach_count > 0:
    #吃完 记录的剩余的桃子的个数
    peach_count = peach_count - (peach_count/2 + 1)
    #计数器+1
    day += 1
#循环结束的时候 桃子被吃完
print('1023个桃子猴子需要',day,'天吃完')

"""
练习:
    1.录入一个整数 
      如果这个数值是偶数 将数据整除2后-1
      如果这个数是奇数 将这个数据-3 再整除2
    重复操作 问多少次之后才能将数据设置为0 
    2.一张纸的厚度时0.8mm,假设纸足够长,问对折多少次可以将纸的高度达到1000米
"""

num = int(input('请输入一个大于1的整数:'))
i = 0
while num > 0:
    if num % 2 == 0:
        num = num // 2 - 1
    else:
        num = (num - 1) // 2
    i = i + 1
print(i)


height = 1000
i = 0.0008
count = 0
while i <= 1000:
    i = i * 2
    count = count +1
print(count)


"""
数字炸弹:
    规则:有一个出题人 随便再1-100之间设定一个数据,然后其他人猜
    猜小、猜大了 出题人提示新的范围
    猜中了 就一顿暴揍
    
    69
    
    你:85  出题人1-85
    他:70  出题人1-70
    她:55  出题人55-70
    我:69  挨揍了
"""
#程序中生成随机数
#Python提供了一个工具包 random 就是来提供随机操作
import random
print(random.randint(1,101))#在给定的a,b之间随机选择一个整数
"""
完成这个游戏 是需要循环的
循环次数是不明确的,使用while循环
循环结束状态:猜中了

"""

"""
数据准备
1.准备一个1-100中的随机数
2.猜数的范围的起始值和结束值

"""
random_num = random.randint(1,100)#唯一一个包含结束位置的
#猜数的范围
start = 1
stop = 100
#开始猜
while True:
    #猜的动作是重复的 所以放在循环中
    #字符串书库可以使用+将数据拼接在一起【只能是字符串与字符串拼接】
    #把数据转化成字符串的操作 str(数据) int() float()
    guess = int(input('请输入'+ str(start) + '-' + str(stop) + '之间的数据,进行竞猜:'))
    #将输入的数据与随机的数据进行对比
    if guess > random_num:
        #pass
       print('猜大了')
       stop = guess
    elif guess < random_num:
       print('猜小了')
       start = guess
    else:
       print('猜中了 暴走中......')
       break
print('游戏结束')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值