1.输入一个年份,输出是否为闰年。#闰年条件:能被4整除但不能被100整除,或者能被400整除的年份都是闰年。
n=eval(input("输入你要检测的年份")) if (n%400==0) or (n%4==0 and n%100!=0): print(n,"是闰年") else: print(n,"不是闰年")
考察if-else语句的使用。
2.最大公约数计算。获得两个整数求出这两个整数的最大公约数和最小公倍数。最大公约数的计算一般使用辗转相除法,最小公倍数则使用两个数的乘积除以最大公约数。
def max_num(x,y): if x>y: return x else: return y def calculate(x,y): if y==0: return x else: calculate(y,x%y) x=int(input("请输入第一个数字")) y=int(input("请输入第二个数字")) m=x,n=y max_num(x,y) calculate(x,y) print(m,"和",m,"的最大公约数为",x)
3.统计不同字符数的个数。用户从键盘输入一行字符,编写一个程序,统计并输出其中中英文字符、数字、空格和其他字符的个数。
s=input("请输入你要输入的字符串") m=len(s) num_1=0 num_2=0 num_3=0 num_4=0 num_5=0 for i in range(m): if (s[i]>='0') and (s[i]<='9'): num_3+=1 elif (s[i]>='a') and (s[i]<='z'): num_2+=1 elif (s[i]>='A') and (s[i]<='Z'): num_2+=1 elif (s[i]>='\u4e00') and (s[i]<='\u9fff'): num_1+=2 elif (s[i]==' '): num_4+=1 else: num_5+=1 print("字符串中含有",int(num_1/2),"个中文字符") print("字符串中含有",num_2,"个英文字符") print("字符串中含有",num_3,"个数字") print("字符串中含有",num_4,"个空格") print("字符串中含有",num_5,"个其他字符")
4.猜数游戏后续。当用户输入的不是整数(如字母、浮点数等)时,程序会中止执行退出,改编题目1中的程序,当用户输入出错时给出“输入内容必须为整数!”的提示,并让用户重新输入。
import random target=random.randint(0,100) count=0 while True: try: guess=int(input("请输入你猜测的数字(0到100)")) except: print("输入内容必须为整数!") continue count=count+1 if guess>target: print("猜大了") elif guess<target: print("猜小了") else: print("猜对了") break print("此轮猜想的次数为:",count)
5.有3扇关闭的门,一扇门后面停着汽车,其余门后是山羊,只有主持人知道每扇门后面是什么。参赛者可以选择一扇门,在开启它之前,主持人会开启另外一扇门,露出门后的山羊,然后允许参赛者更换自己的选择。请问:参赛者更换选择后能否增加猜中车的机会?——这是一个经典问题。请使用random库对这个随机事件进行预测,分别输出参赛者改变选择和坚持选择获胜的概率。
import random
print("一下是关于羊车门问题概率的计算,其中设定有n-1个羊,一个车,羊的数目为随机数")
n=eval(input("请输入羊和车的总和"))
x=random.randint(5000,10000)#测试次数
change=0
nochange=0
for i in range(1,x+1):
a=random.randrange(1,4)#选手选择的数字(同时设定随机数的范围)
b=random.randrange(1,4)#车的数字
if a==b:
change=change+1
else:
nochange=nochange+1
print("第一次选择换之后选择为车的概率为",change/x)
print("第一次不换之后选择为车的概率",nochange/x)