学习Python的第四天

学习Python的第四天

​ 今天主要是巩固练习一下之前学的知识,检验是否已经熟练掌握循环结构和分支结构,靠例题来练习。

"""
example01 - 输入一个正整数N,将N进行反转

Author: 周浪
Date: 2021/7/22
"""
N = int(input('N = '))
y = N
total = 0
while N > 0:
    x = N % 10
    total = total * 10 + x
    N //= 10
print(f'{y}反转后得到的值为{total}')


# 嵌套循环例子:求1-100之间的所有质数
for n in range(2, 100):
    is_prime = True

    for i in range(2, n):
        if n % i == 0:
            is_prime = False
            break

    if is_prime:
        print(n, end=' ')
n = int(input('n = '))

for i in range(1, n + 1):
    for j in range(1, i + 1):
        print(i, end=' ')
    print()


# 乘法表
for i in range(1, 10):
    for j in range(1, i + 1):
        print(f'{i} * {j} = {i * j}', end=' ')
    print()
"""
example03 - 输入一个n,输出n个斐波拉切数
1   1   2   3   5   8   13...
Author: DELL
Date: 2021/7/22
"""
n = int(input('n = '))
x = 0
y = 1
for i in range(1, n + 1):
    z = x + y
    y = x
    x = z
    print(z, end=' ')
"""
example04 - 穷举法:穷尽所有的可能性,然后设置条件,找到问题的解--->暴力破解法

例子:公鸡5元一只,母鸡3元一只,小鸡1元3只。现在用100元买100只鸡,问公鸡,母鸡,小鸡各有多少

Author: DELL
Date: 2021/7/22
"""
for x in range(0, 21):
    for y in range(0, 34):
        for z in range(0, 100, 3):
            if x + y + z == 100 and 5 * x + 3 * y + z / 3 == 100:
                print(x, y, z)

# 改进版
for x in range(0, 21):
    for y in range(0, 34):
        z = 100 - x - y
        if z % 3 == 0 and 5 * x + 3 * y + z / 3 == 100:
            print(x, y, z)
"""
example05 -
五个人(ABCDE)晚上去捕鱼,捕了不计其数的鱼,然后就去睡觉。
第二天,A第一个醒来,把鱼分成了五份,扔掉了多余的一条,然后拿走了自己的一份;
B、C、E、D依次醒过来,都按照同样的方法来分鱼。问他们最少捕了多少条鱼。

Author: DELL
Date: 2021/7/22
"""
fish = 1
while True:
    is_enough = True
    x = fish
    for _ in range(5):
        if (x - 1) % 5 == 0:
            x = (x - 1) / 5 * 4
        else:
            is_enough = False
            break
    if is_enough:
        print(fish)
        break
    fish += 1
"""
homework -
1     计算机产生一个1-100的随机数,人输入自己猜的数字,计算机给出对应的提示”大一点“、”小一点“
或”恭喜你猜对了“,直到猜中为止。如果猜的次数超过7次,计算机温馨提示”智商余额明显不足“。

2     输入10个1-99之间的正整数,找到其中的最大值、最小值以及平均值。

Author: 周浪
Date: 2021/7/22
"""
import random
x = random.randrange(1, 101)
y = int(input('自己猜的数字'))
c = 1
while x != y:
    if x > y:
        print('大一点')
    else:
        print('小一点')
    c += 1
    y = int(input('自己猜的数字'))
print('恭喜你猜对了')
print(f'{c}猜的次数')
if c > 7:
    print('智商余额不足')


x, y, z, = 100, 0, 0
for _ in range(10):
    i = int(input('请输入0-100的整数'))
    z += i
    if x > i:
        x = i
    if y < i:
        y = i
print(f'平均值{z / 10}, 最大值{y}, 最小值{x}')
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值