Python三大结构练习1

1.输入n,求1+2+3+……+n

题目分析:使用循环实现。

for循环实现:

n = eval(input("输入n的值:"))
sum = 0
for x in range(1, n+1):
    sum += x
print("结果为:", sum)

 while循环实现:

num = eval(input("请输入数字n:"))
num_sum = 0
i = 1
while i <= num:
    num_sum += i
    i += 1
print("结果为:", num_sum)

示例:输入5,输出结果为15。

2.输出100到200之间能被7整除但不能被5整除的数.

题目分析:使用循环遍历100~200,使用if语句判断符合条件的数。

代码实现:

"""
describe:输出100到200之间能被7整除但不能被5整除的数.
"""
num = 0
for x in range(100, 201):
    if x % 7 == 0 and x % 5 != 0:
        print(x)  # 输出
        num += 1
print("共有%d个数" % num)

运行结果:

3.求解鸡兔同笼问题.

题目描述:今有雉(鸡)兔同笼,上有三十五头,下有九十四足。问雉兔各几何。

使用双重循环 :

for x in range(1, 36):
    for y in range(1, 36):
        if x+y == 35 and 2*x+4*y == 94:
            print("可有鸡:%d头,兔子:%d头" % (x, y))

使用单循环:

"""
describe:求解鸡兔同笼问题.今有雉(鸡)兔同笼,上有三十五头,下有九十四足。问雉兔各几何。
"""
for i in range(1, 36):
    if i * 2 + (35 - i) * 4 == 94:
        print("可有鸡:%d头,兔子:%d头" % (i, 35 - i))
        break

运行结果:

4. 输入5个学生成绩,求平均分。

while实现: 

i = 0
sum = 0
while i < 5:  # 输入五个成绩后退出
    sum += eval(input())
    i += 1
print("平均成绩为:%.2f" % (sum/i))  # 输出成绩

 for循环实现:

"""
describe:输入5个学生成绩,求平均分。
"""
score_sum = 0
for i in range(5):
    score_sum += eval(input("请输入第%d个学生的成绩:" % (i + 1)))
avg = score_sum * 1.0 / 5
print("5个学生的平均成绩为:{:.2f}分".format(avg))

输出结果为:

5.以一个人第一天的能力值en为基数,记为1.0,当好好学习时能力值相比前一天提高1‰,问每天努力学习,一年(365天)后的能力值en有多少?

使用while循环:

"""
describe:以一个人第一天的能力值en为基数,记为1.0,
当好好学习时能力值相比前一天提高1‰,问每天努力学习,一年(365天)后的能力值en有多少?
"""
en = 1.0
i = 1
while i <= 365:
    en *= 1.001
    i += 1
print("能力值en为:", en)

使用 math.pow函数:

print("能力值en为:", pow(1.001, 365))

运行结果: 

天天向上!!!

6.谨防校园贷

题目描述:

你看中了一款大概要八千多元的手机,但是你家里面没有给你这个预算。现在有一种“校园贷”,如果贷10000元,签订8个月的偿还期限,日利率只有8‰。你觉得怎么样,想不想了解一下在8个月后需要偿还多少钱?在引例的基础上,如果贷10000元,日利率8‰,请计算还款金额多少天后就超过100000(十万)元了?

代码实现:

"""
describe:你看中了一款大概要八千多元的手机,但是你家里面没有给你这个预算。
现在有一种“校园贷”,如果贷10000元,签订8个月的偿还期限,日利率只有8‰。
你觉得怎么样,想不想了解一下在8个月后需要偿还多少钱?
在引例的基础上,如果贷10000元,日利率8‰,请计算还款金额多少天后就超过100000(十万)元了?
"""
# 假设一个月有30天
print("8个月后需要偿:{:.2f}万元".format(pow(1.008, 30 * 8)))
print("*****************************")
day = 1
money = 10000
while money <= 100000:
    money *= 1.008
    day += 1
print(f"还款金额{day}天就超过100000(十万)元了!!!")

输出结果为:

所以说尽量不要借校园贷,你还不起。。。 

7.求参会人数

酒会上,如果每人与其他与会者只碰杯一次,并且知道碰杯声为903下,写程序求出出席酒会的人数。

稍微分析一下,第一个人可碰(n-1)次,第二个人可碰(n-2)次,依次类推。。。

代码实现:

"""
describe:酒会上,如果每人与其他与会者只碰杯一次,并且知道碰杯声为903下,写程序求出出席酒会的人数。
"""
n = 1
while n * (n - 1) != 2 * 903:
    n += 1
print("出席酒会的人数为:", n)

出席酒会的人数为: 43

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

W_chuanqi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值