python编写程序模拟硬币的投掷、假设0表示硬币的反面_Python.习题四 循环结构

Python. 循环结构

1.编写程序,计算1×2×3×…×10.

s=1

i=1

while i<=10:

s=s*i

i=i+1

print("s=",s)

2.编写程序,计算1+3+5+…+99.

sum=0

for i in range(1,100,2):

sum=sum+i

print("sum=",sum)

3.编写程序,输出1~100之间所有能被3整除,但是不能被5整除的数。

for i in range(1,100):

if i%3==0:

continue

print(i,end=" ")

4.编写程序,输出1000~2000年之间所有闰年,要求每行输出5个年份。

n=0

for i in range(1000,2000+1):

if (i%4==0 and i%100!=0) or (i%400==0):

n+=1

print("{}".format(i),end=" ")

if n%5==0:

print("")

5.编写程序,输出斐波那契数列的前20项,要求每行输出5项。

Fib1=1

Fib2=1

print(Fib1,Fib2,end=" ")

n=2

for i in range(3,20+1):

Fibi=Fib1+Fib2

Fib1=Fib2

Fib2=Fibi

n+=1

print("{}".format(Fibi),end=" ")

if n%5==0:

print("")

6.编写程序,从键盘上输入10个整数,输出这10个数中所有奇数之和,偶数之和及所有数的平均值。

sum1=sum2=0

for i in range(10):

num=eval(input("请输入一个整数:"))

if num%2==1:

sum1=sum1+num

else:

sum2=sum2+num

avg=(sum1+sum2)/10

print("所有奇数之和:{},所有偶数之和:{},平均值:{}".format(sum1,sum2,avg))

7.编写程序,从键盘上输入若干个整数,求出这些整数中所有奇数之和、偶数之和及所有数的平均值,当从键盘输入字符"A"时,程序输出计算结果。

sum1=sum2=k=0

num=input("请输入一个整数(输入字符A时结束处理):")

while num!='A':

k=k+1

num=int(num)

if num%2==1:

sum1=sum1+num

else:

sum2=sum2+num

num=input("请输入一个整数(输入字符A时结束处理):")

avg=(sum1+sum2)/k

print("所有奇数之和:{},所有偶数之和:{},平均值:{}".format(sum1,sum2,avg))

8.编写程序,输出1×2×3+3×4×5+5×6×7+…+99×100×101的值。

sum=0

for i in range(1,100,2):

sum=i*(i+1)*(i+2)

print("结果为:",sum)

9.编写程序,计算s=a+aa+aaa+…+aaa…aaa的值,其中a是1~9之间的某个数字,n是一个正整数。例如,当a=2,n=5时,s=2+22+222+2222+22222=24690.

#方法一

a,n=eval(input("请输入a,n的值"))

s=0

item=0

for i in range(1,n+1):

item=item*10+a

s=s+item

print("值为:",s)

#方法二

a,n=eval(input("请输入a,n的值"))

s=0

for i in range(1,n+1):

s=s+int(str(a)*i)

print("值为:",s)

10.编写程序,实现猜数游戏。在程序中随机生成一个0~9之间(包含0和9)的随机整数T,让用户通过键盘输入所猜的数。如果输入的数大于T,显示“遗憾,太大了”;如果小于T,显示“遗憾,太小了”;如此循环,直至猜中该数,显示“预测N次,你猜中了”,其中N是指用户在这次游戏中猜中该随机数一共尝试的次数。

import random

rnd=random.randint(0,9)

print("系统刚随机产生了一个0~9之间的一个整数")

user=int(input("请输入你猜的数"))

k=0

while 1:

k=k+1

if user>rnd:

print("遗憾,太大了")

user=int(input("请继续输入你猜的数"))

elif user

print("遗憾,太小了")

user=int(input("请继续输入你猜的数"))

else:

print("预测{}次,你猜中了".format(k))

break

11.编写程序,产生两个0~100之间(包含0和100)的随机整数RND1和RND2,求这两个整数的最大公约数和最小公倍数。

import math

import random

RND1=random.randint(0,100)

RND2=random.randint(0,100)

gys=math.gcd(RND1,RND2)

gbs=RND1*RND2/gys

print("{}和{}的最大公约数为:{},最小公倍数为:{}".format(RND1,RND2,gys,gbs))

12.编写程序模拟硬币的投掷。假设0表示硬币反面,1表示硬币正面。在程序中让计算机产生若干次(建议大于100次)随机数,统计0和1分别出现的次数,并观察0和1出现的次数是否相同。

import random

num0=0

n=eval(input("请输入你要模拟投掷硬币的次数:"))

for i in range(n):

rnd=random.randint(0,1)

if rnd==0:

num0=num0+1

num1=n-num0

print("硬币反面{}次,硬币正面面{}次".format(num0,num1))

13.编写程序,计算“天天向上”和“天天向下”两种情况下的武力值。假设一年有365天,郭大侠第一天的武力值为1.如果郭大侠每天勤于练功,每天武力值相比前一天会增加1%;如果郭大侠每天不练功,每天武力值相比前一天会减少1%。郭大侠制定了一年的练功计划:从第一天开始,前五天每天练功,然后休息两天;接下来又练功五天,休息两天;如此往复,请计算一年后,郭大侠的最终武力值(结果保留2位小数)。

gdxwlz=1

for i in range(1,366):

if i%6==0 or i%7==0:

gdxwlz=gdxwlz*(1-0.01)

else:

gdxwlz=gdxwlz*(1+0.01)

print("郭大侠的最终武力值为:{:.2f}".format(gdxwlz))

14.编写程序,计算糖果总数。假设有一盒糖果,按照如下方式从中取糖果:

一个一个地取,正好取完

两个两个地取,还剩一个

三个三个地取,正好取完

四个四个地取,还剩一个

五个五个地取,还差一个

六个六个地取,还剩三个

七个七个地取,正好取完

八个八个地取,还剩一个

九个九个地取,正好取完

请问:这个盒子里至少有多少个糖果?

n=1

while 1:

if n%2==1 and n%3==0 and n%4==1 and n%5==4 and n%6==3 and n%7==0 and n%8==1 and n%9==0:

print("这个盒子里一共有{}个糖果".format(n))

break

else:

n=n+1

如果我整理的对你有用,就关注我吧。嘻嘻

  • 24
    点赞
  • 84
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值