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
print(set1)
choice = input("在上表中是否有你的生日号(y/n):")
if choice == "y" :
       day +=1
print(set2)
choice = input("在上表中是否有你的生日号(y/n):")
if choice == "y" :
       day +=2
print(set3)
choice = input("在上表中是否有你的生日号(y/n):")
if choice == "y" :
       day +=4
print(set4)
choice = input("在上表中是否有你的生日号(y/n):")
if choice == "y" :
       day +=8
print(set5)
choice = input("在上表中是否有你的生日号(y/n):")
if choice == "y" :
       day +=16
if day == 0 :
       print("你是不是有点大病?")
else :
       print("你的生日号为%d!"%day)

 运行结果:

2.BMI是根据体重测量健康的方式。通过以千克为单位的体重除以以米为单位的身高的平方计算出BMI。下面是16 岁以上人群的BMI图表:

 

编写一个程序,提示用户输人以磅为单位的体重和以英寸为单位的身高,然后显示BMI值。注意: 1磅是0.453592 37千克而1英寸是0.0254米。程序清单4-6给出这个程序。

运行结果: 

 

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

运行结果:

 

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

 

 

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

 

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

运行结果:

 

6.(代数:解2x2线性方程)你可以使用克莱姆法则解下面的线性方程2x2系统:

 

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

 

运行结果:

 

7.(找未来数据)编写程序提示用户输人表示今天是一-周内哪一- 天的数字(星期天是0,星期一是1,…星期六是6)。还要提示用户输人今天之后到未来某天的天数,然后显示未来这天是星期几。

 

运行结果:

 

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

 

运行结果:

 

9.(检测-一个数字)编写一个程序提示用户输人-一个整数,然后检测该数字是否能被5和6都整除、能被5或6整除还是只被它们中的-一个整除(但又不能被它们同时整除)。

 

运行结果:

 

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

 

运行结果:

 

11.(金融问题:货币对换)编写一个程序提示用户输人美元和人民币之间的货币汇率。提示用户输人0表示将美元转换为人民币而1表示将人民币转换为美元。提示用户输人美元数或人民币数将它分别转换为人民币或美元。

 

运行结果:

 

12.(计算三角形的周长)编写程序读取三角形的三个边,如果输入都是合法的则计算它的周长。否则,显示这个输入是非法的。如果两边之和大于第三边则输入都是合法的。

 

运行结果:

 

13.(科学问题: - .周的星期几)泽勒的一- 致性是一个由泽勒开发的算法,用于计算- -周的星期几。这个公式是

 

●这里的h是指一-周的星期几(0:星期六; 1:星期天; 2:星期一; 3:星期二; 4:星期三; 5:星期四; 6:星期五)。
●q是一个月的哪- -天。
●m是月份(3:三月; 4:四月; .; 12:十二月)。一月和二月都是按照前一年的13月和14月来计数的。
●j是世纪数(即|year/100|)。
●k是一个世纪的某一年(即year % 100 )。
编写程序提示用户输人一个年份、月份以及这个月的某天,然后它会显示它是一周的星期几。
下面是一些事例运行。

(提示: [nJ=n//I其中n是一个正数。 一月和二月在公式中是以13 和14来计算的,所以你需要将用户输人的月份1转换为13和将用户输人的2转换为14, 将它们的年份改变为前一-年。)

 

运行结果:

 

14.(几何问题:点在圆内吗? )编写一个程序提示用户输入一个点(x,y),然后检测这个点是否在圆心为(0,0)半径为10 的圆内。例如:点(4,5)在圆内而(9,9)在圆外,如图4-8a所示。

 

(提示:如果一个点到(0,0)之间的距离小于或等于10,那它就在圆内。计算距离的公式是:

在这里插入图片描述 

测试你的程序考虑所有的情况)。下面是两个示例运行。

在这里插入图片描述 

 

运行结果:

 

15.(几何问题:点在矩形内吗? )编写程序提示用户输人点(x,y),然后检测这个点是否在以(0,0)为中心而宽为10高为5的矩形内。例如: (2,2) 在矩形内而(6,4)在矩形外,如图4-8b 所示。(提示:如果一个点到(0,0)的水平距离小于或等于10/2而到(0,0)的垂直距离小于或等于5.0/2。测试你的程序覆盖所有的情况。)下面是两个示例运行。.

 

 

运行结果:

 

16.(回文数)编写程序提示用户输入一个三位整数,然后决定它是否是一一个回文数。如果一个数从左向右和从右向左读取时是-样的,那么这个数就是回文数。下面是这个程序的示例运行。

 

 

运行结果: 

17.(几何问题:点在三角形内吗? )假设-一个直角三角形被放在一个水平面上,如下图所示。直角点是在(0,0)而另外两个点在(200,0)和(0,100)处。编写程序提示用户输入一个带x坐标和y坐标的点,然后决定这个点是否在三角形内。下面是一些示例运行。

 

 

 

运行结果:

 

18.(几何问题:两个圆)编写程序提示用户输人两个圆的中心的坐标以及它们的半径,然后判断第二个圆是在第—个圆内还是和第一个圆有重叠部分,如图4-11所示。(提示:如果两个中心的距离≤|r1 - r2|那么circle2在circlel内,如果两个中心的距离≤r1 + r2那么circle2是和circlel有重叠的。测试你的程序覆盖所有的情况。)

 

运行结果:

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值