Python-----有关判断语句练习题以及题目解析(1)

Python判断语句练习题及解析

1.你可以通过询问5个问题来找出你朋友的生日在-一个月中的哪天。每个问题都在询问这一天是否在5个数字集中。
在这里插入图片描述
生日就是出现这个数字的集合的第- L 个数字的和,例如:如果生日是19,那它就会在setl. set2和set5中出现。这三个集合的第一个数字分别是1.2. 16。它们加起来的和就是19。

set1 = "1\t3\t5\t7\n" \
       "9\t11\t13\t15\n" \
       "17\t19\t21\t23\n" \
       "25\t27\t29\t31\n"
set2 = "2\t3\t6\t7\n" \
       "10\t11\t14\t15\n" \
       "18\t19\t22\t23\n" \
       "26\t27\t30\t31\n"
set3 = "4\t5\t6\t7\n" \
       "12\t13\t14\t15\n" \
       "20\t21\t22\t23\n" \
       "28\t29\t30\t31\n"
set4 = "8\t9\t10\t11\n" \
       "12\t13\t14\t15\n" \
       "24\t25\t26\t27\n" \
       "28\t29\t30\t31\n"
set5 = "16\t17\t18\t19\n" \
       "20\t21\t22\t23\n" \
       "24\t25\t26\t27\n" \
       "28\t29\t30\t31\n"
day = 0#定义生日日期为0
print(set1)#将set1进行输出
print("看上表,你的生日日期是否在里面?")
num1 = int(input("有 输:1 没有 输:2 请选择:  "))#进行选择,若set1中有生日日期则选1,反之选2
if num1 == 1 :#若选1则执行下面程序,若选2则跳过day += 1程序
       day += 1#将生日日期进行加一
print(set2)#同样将set2进行输出
print("看上表,你的生日日期是否在里面?")
num2 = int(input("有 输:1 没有 输:2 请选择:  "))#进行选择,若set2中有生日日期则选1,反之选2
if num2 == 1 :#若选1则执行下面程序,若选2则跳过day += 2程序
       day += 2#将生日日期进行加二
#下面原理同上
print(set3)
print("看上表,你的生日日期是否在里面?")
num3 = int(input("有 输:1 没有 输:2 请选择:  "))
if num3 == 1 :
       day += 4
print(set4)
print("看上表,你的生日日期是否在里面?")
num4 = int(input("有 输:1 没有 输:2 请选择:  "))
if num4 == 1 :
       day += 8
print(set5)
print("看上表,你的生日日期是否在里面?")
num5 = int(input("有 输:1 没有 输:2 请选择:  "))
if num5 == 1 :
       day += 16
elif day == 0 :#判断进行到最后输出生日日期,若set1-set5都选2,则day为0,输出“玩呢???”
       print("玩呢???")
else :
       print("你的生日日期是%d号"%day)#若正常进行则输出day最后的值

运行结果:在这里插入图片描述

2.BMI是根据体重测量健康的方式。通过以千克为单位的体重除以以米为单位的身高的平方计算出BMI。下面是16 岁以上人群的BMI图表:在这里插入图片描述
编写一个程序,提示用户输人以磅为单位的体重和以英寸为单位的身高,然后显示BMI值。注意: 1磅是0.453592 37千克而1英寸是0.0254米。程序清单4-6给出这个程序。

(height,weight) = eval(input("请输入身高体重: "))
height1 = height / 0.0254#将英寸化为米
weight1 = weight / 0.45359237#将镑换化为千克
bmi = weight1 / (height1 ** 2)#BMI公式
#进行if判断语句
if 30 <= bmi :
	print("痴肥,你好自为之!")
elif 30 > bmi >= 25 :
	print("超重,该减肥了!")
elif 25 > bmi >= 18.5 :
	print("标准,但别太飘了,小心长胖!")
elif bmi < 18.5 :
	print("超轻,太瘦了,多吃点!")

运行结果:在这里插入图片描述

3.一个年份如果能被4整除但不能被100 整除,或能被400整除,那么这个年份就是闰年。

year = float(input("请输入一个年份:  "))
if year % 4 == 0 and year % 100 != 0 :#对是否为闰年进行判断
	print("该年为闰年!!!")
elif year % 400 == 0 :
	print("该年为闰年!!!")
else :#若以上两项都不符,则为平年
	print("又不是闰年,激动啥???")

运行结果:在这里插入图片描述

4.假设你想开发- -个玩彩票的程序。程序随机产生一个两位数的数字,然后提示用户输人一个两位数的数字,并根据以下规则判定用户是否赢得奖金。
1 )如果用户输人的数字和随机产生的数字完全相同(包括顺序),则奖金为10000美元。
2)如果用户输人的数字和随机产生的数字相同(不包括顺序),则奖金为3000美元。
3)如果用户输人的数字和随机产生的数字有一-位数相同,则奖金为1000美元。

import random
num1 = random.randint(10,99)#定义电脑随机抽取10-99之间的数
num2 = int(input("请输入一个两位数: "))#参加该游戏的人进行猜数
player1 = num2 % 10#取数的个位
player2 = num2 // 10#取数的十位
computer1 = num1 % 10
computer2 = num1 // 10
print("我们的数字是:" + str(num1))
if player1 == computer1 and player2 == computer2:#若猜的数,个位十位都相同
	print("恭喜你,猜的完全正确,获得10000美元奖金!!!")
elif player1 == computer2 and player2 ==computer1:#若猜的数,个位等于十位
	print("恭喜你,两个数都猜对了,获得3000美元奖金!!!")
elif player1 == computer1 or player1 == computer2 or player2 == computer1 or player2 == computer2:#有一个数猜中
	print("恭喜你,猜对了一个数,获得1000美元奖金!!!")
else :#全都猜不中
	print("恭喜你成功避开了答案,欢迎下次再来!")

运行结果:在这里插入图片描述

5.(代数方面:解一元二次方程)例如: ax^2+ bx+c=0的平方根可以使用下面的公式获取。
在这里插入图片描述

b^2 - 4ac被称为二次方程的判别式。如果它为正,那么方程有两个实根。如果它为零,那么方程有一个根。如果它为负,那么方程没有实根。
编写程序,提示用户输人a、b和c的值,然后显示判别式的结果。如果判别式为正,则显示两个根。如果判别式为零,则显示一个根。否则,显示“The equation has no real roots"。

import math#导入数学库
( a , b , c ) = eval(input("请输入a,b,c的值:  "))#定义a,b,c的值
n = b ** 2 - 4 * a * c
if n > 0:
	r1 = ((-b) + math.sqrt(b ** 2 - 4 * a * c)) / (2 * a)#math.sqrt表示运用数学库中的算术平方根
	r2 = ((-b) - math.sqrt(b ** 2 - 4 * a * c)) / (2 * a)
	print("该方程有两个根")
	print("r1 = %0.3f   r2 = %0.3f" %(r1,r2))#  %0.3f表示取小数点后3位
elif n == 0:
	r = ((-b) + math.sqrt(b ** 2 - 4 * a * c)) / (2 * a)
	print("该方程有相同的一个根")
	print("r1 = r2 = %0.3f" %r)
elif n < 0:
	print("该方程没有根")

运行结果:在这里插入图片描述

6.(代数:解2x2线性方程)你可以使用克莱姆法则解下面的线性方程2x2系统:
在这里插入图片描述

编写程序,提示用户输人a、b、c、d、e和f,然后显示结果。如果ad-bc为零,呈现“Theequation has no solution"。

(a,b,c,d,e,f) = eval(input("请输入a,b,c,d,e,f的值: "))
n = a * d - b * c
if n == 0:
	print("哪有答案啊???")
else :
	x = (e * d - b * f) / (a * d - b * c)
	y = (a * f - e * c) / (a * d - b * c)
	print("结果:x = %0.2f  y = %0.2f"%(x,y))

运行结果:在这里插入图片描述
7.(找未来数据)编写程序提示用户输人表示今天是一-周内哪一- 天的数字(星期天是0,星期一是1,…星期六是6)。还要提示用户输人今天之后到未来某天的天数,然后显示未来这天是星期几。

today = int(input("请输入今天的日期(0-6): "))
day = int(input("请输入经过多少天: "))
day1 = (today + day) % 7
if 0 <= today <=6 :#定义只有星期一到星期天,所以只能输入0-6
	print("今天是星期%s过了%s天后是星期%s"%(today,day,day1))
else :
	print("哪有星期%d啊,你这个小可爱!!!"%today)

运行结果:在这里插入图片描述
8.(金融方面:比较价钱)假设你购买大米时发现它有两种包装。你会想编写-一个程序比较这两种包装的价钱。程序提示用户输人每种包装的重量和价钱,然后显示价钱更好的那种包装。

a1, a2 = eval(input("请输入第一种包装的重量和价格: ") )
b1, b2 = eval(input("请输入第二种包装的重量和价格: ") )
if (a2 / a1) > (b2 / b1) :#计算每斤重量值多少钱,并进行比较
	print("第一种包装更nice!!!")
elif (a2 / a1) < (b2 / b1) :
	print("第二种包装更nice!!!")
elif (a2 / a1) == (b2 / b1) :
	print("两种包装一样nice!!!")

运行结果:在这里插入图片描述
9.(检测-一个数字)编写一个程序提示用户输人-一个整数,然后检测该数字是否能被5和6都整除、能被5或6整除还是只被它们中的-一个整除(但又不能被它们同时整除)。

a = int(input("请输入一个数: "))
if a % 5 ==0 and a % 6 ==0 :
	print("该数能同时被5和6整除")
elif a % 5 ==0 and a % 6 != 0 :
	print("该数能被5整除但不能被6整除")
elif a % 6 ==0 and a % 5 != 0 :
	print("该数能被6整除但不能被5整除")
elif a % 5 !=0 and a % 6 !=0 :
	print("该数5和6都不能整除")

运行结果:在这里插入图片描述
10.(游戏:剪刀、石头、布)编写程序来玩流行的剪刀-石头一布的游戏。(剪刀可以剪纸,石头可以磕碰剪刀,而布可以包裹石头。)程序随机产生-一个数字0、1或2来表示剪刀、石头和布。程序提示用户输人数字0、1 或2然后显示一条消息表示用户或计算机是赢、输还是平局。

import random
c = random.randint(0,2)#定义电脑随机输入0,1,2中任意一个数
p = int(input("请输入一位数0(剪刀),1(石头),2(布): "))
if p > 2 or p < 0 :
	print("认真审题!哥们!!!")
elif p - c == 0 :
	print("平局")
elif p - c == 1 or p - c == -2 :
	print("恭喜你,赢了!!!")
elif p - c ==2 or p - c == -1 :
	print("很遗憾,你输了!!!")

运行结果:在这里插入图片描述
11.(金融问题:货币对换)编写一个程序提示用户输人美元和人民币之间的货币汇率。提示用户输人0表示将美元转换为人民币而1表示将人民币转换为美元。提示用户输人美元数或人民币数将它分别转换为人民币或美元。

num = float(input("请输入你要转换的数值:  "))
a = int(input("请输入转换方式0(美元转换为人民币),1(人民币转换为美元):  "))
num1 = num * 6.3634#进行人民币转换成美元
num2 = num / 6.3634#进行美元转换为人民币
if a != 0 and a != 1 :
	print("没有该选项,请重新选择")
elif a == 0 :
	print("你能兑换%f的人民币: "%num1)
elif a == 1 :
	print("你能兑换%f的美元: "%num2)

运行结果:在这里插入图片描述
12.(计算三角形的周长)编写程序读取三角形的三个边,如果输入都是合法的则计算它的周长。否则,显示这个输入是非法的。如果两边之和大于第三边则输入都是合法的。

side1,side2,side3 = eval(input("请输入三角形的三条边: "))
per = side3 + side2 + side1
if ((side1 + side2) > side3) and ((side1 + side3) > side2) and ((side2 + side3) > side1) :
	print("该三角形的周长为: %d"%per)
elif ((side1 + side2) < side3) or ((side1 + side3) < side2) or ((side2 + side3) < side1) :
	print("该三角形不成立!!! ")

运行结果:在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Nirvana92/article/details/123938477