烧脑题练习

一、If逻辑判断

1.1

编写程序计算购买图书的总金额:用户输入图书的定价和购买图书的数量,并分别保存到一个 float 和一个 int 类型的变量中,然后根据用户输入的定价和购买图书的数量,计算购书的总金额并输出。其中,图书销售策略为:正常情况下按 9 折出售,购书数量超过 10本打 8.5 折,超过 100 本打 8 折

# 1.1
price = float(input('请输入图书的定价'))
number = int(input('请输入购买图书的数量'))
if number <= 10:
print(f'购买图书的总金额为:{(price * number * 0.9):.2f}')
elif number < 100:
print(f'购买图书的总金额为:{(price * number * 8.5):.2f}')
else:
print(f'购买图书的总金额为:{(price * number * 0.8):.2f}')

1.2 

动物园想在新建一个三角形的人工湖,一是为了养鱼美观,二是可以循环水资源。从键盘输入三条边 A、B、C 的边长,请编程判断能否组成一个三角形。(可以组成三角形的要素,两边之和大于第三边,两边之差小于第三边)

要求:如果三条边长 A、B、C 能组成三角形的话,输出 YES,否则 NO。

# 1.2
a = float(input('输入边A'))
b = float(input('输入边B'))
c = float(input('输入边C'))
if a + b > c and a + c > b and b + c > a:
if abs(a - b) < c and abs(a - c) < b and abs(b - c) < a:
print('YES')
else:
print('NO')
else:
pass

 

1.3 

商店A 准备在今年夏天开始出售西瓜,西瓜的售价如下,20 斤以上的每斤 0.85 元;重于 15 斤轻于等于 20 斤的,每斤 0.90 元;重于 10 斤轻于等于 15 斤的,每斤 0.95 元;重于 5 斤轻于等于 10 斤的,每斤 1.00 元;轻于或等于 5 斤的,每斤 1.05 元。现在为了知道商店是否会盈利要求 A 公司帮忙设计一个输入西瓜的重量和顾客所付钱数,输出应付货款和应找钱数的程序。

# 1.3
weight = float(input('输入西瓜重量:'))
money = float(input('顾客所付钱数:'))
if weight > 20:
print(f'应付货款{(weight * 0.85):.2f}')
print(f'应找钱数{(money - (weight * 0.85)):.2f}')
elif weight > 15:
print(f'应付货款{(weight * 0.90):.2f}')
print(f'应找钱数{(money - (weight * 0.90)):.2f}')
elif weight > 10:
print(f'应付货款{(weight * 0.95):.2f}')
print(f'应找钱数{(money - (weight * 0.95)):.2f}')
elif weight > 5:
print(f'应付货款{(weight * 1.00):.2f}')
print(f'应找钱数{(money - (weight * 1.00)):.2f}')
else:
print(f'应付货款{(weight * 1.05):.2f}')
print(f'应找钱数{(money - (weight * 1.05)):.2f}') 

1.4 

对学生成绩进行统计和数据分析可以发现学生对知识的掌握情况,以便教师根据分析的结果调整教学内容和重难点,现在需要完成以下任务来实现成绩分析系统。输入一个百分制的成绩 t,将其转换成对应的等级然后输出,具体转换规则如下:

90~100 为 A

80~89 为 B

70~79 为 C

60~69 为 D

0~59 为 E

要求:如果输入数据不在 0~100 范围内,请输出一行错误提示:“数据超出范围!”

# 1.4
score = float(input('输入一个百分制的成绩:'))
if score < 0 or score > 100:
print('数据超出范围!')
elif 100 >= score >= 90:
print('A')
elif 90 > score >= 80:
print('B')
elif 79 > score >= 70:
print('C')
elif 69 > score >= 60:
print('D')
else:
print('E')

1.5

从键盘接收一个十一位的数字,判断其是否为尾号 5 连(最后5个数一样)的手机号。规则:第 1 位是 1,第二位可以是数字 358 其中之一,后面 4 位任意数字,最后 5   位为任意相同的数字。例如:18601088888、13912366666 则满足。

注意:不满足的输出“false”,满足要求的输出“true”。

# 1.5
num = input('接收一个十一位的数字')
num1 = num[-1]
num2 = num[-2]
num3 = num[-3]
num4 = num[-4]
num5 = num[-5]
if num1 == num2 and num2 == num3 and num3 == num4 and num4 == num5:
print('true')
else:
print('false')

1.6

按顺序输入正方形的边长(a),长方形的长(l)和宽(d),以及圆的半径(r),计算并比较它们哪个图形面积更大,输出面积最大的图形。例如:输入 1 3 4 1,输出:长方形

# 1.6
a = input('请输入正方形的边长')
l = input('请输入长方形的长')
d = input('请输入长方形的宽')
r = input('请输入圆的半径')
s1 = int(a) ** 2
s2 = int(l) * int(d)
s3 = 3.14 * int(r) ** 2
if s1 >= s2:
if s1 >= s3:
print('正方形', s1)
else:
print('圆形', s3)
elif s2 >= s3:
print('长方形', s2)
else:
print('圆形', s3)

1.7

整除判断游戏能显著提高小朋友的逻辑思维能力,问题要求如下:

•能同时被 3、5、7 整除

•能同时被 3、5 整除

•能同时被 3、7 整除 

•能同时被 5、7 整除 

•只能被 3、5、7 中的一个整除

•不能被 3、5、7 任一个整除 

输入一个整数,输出满足对应条件的结果。要求:使用分支结构语句实现。

# 1.7
inter = int(input('输入一个整数:'))
if inter % 3 == 0 and inter % 5 == 0 and inter % 7 == 0:
print('能同时被 3、5、7 整除')
elif inter % 3 == 0 and inter % 5 == 0:
print('能同时被 3、5整除')
elif inter % 3 == 0 and inter % 7 == 0:
print('能同时被 3、7整除')
elif inter % 5 == 0 and inter % 7 == 0:
print('能同时被 5、7整除')
elif inter % 3 == 0 or inter % 5 == 0 or inter % 7 == 0:
print('只能被 3、5、7 中的一个整除')
else:
print('不能被 3、5、7 任一个整除') 

1.8 

判断一个整数是否为“水仙花数”。所谓“水仙花数”是指一个三位的整数,其每个单独数字的立方和等于该数本身。例如:153 是一个“水仙花数”, 例如 153=1**3+5**3+3**3。如果是水仙花数就输出YES,否则就输出No


# 1.8
num = input('输入三位的整数')
num1 = int(num[0])
num2 = int(num[1])
num3 = int(num[2])
num0 = int(num)
if num0 == num1 ** 3 + num2 ** 3 + num3 ** 3:
print('YES')
else:
print('NO')
 

二、循环 (包含for while 列表 字典知识)

1.5

一个球从 100 米高度自由落下,每次落地后反弹回原高度的一半,再落下,再反弹。求它在第十次落地时,球共经过多少米? 第十次反弹多高?


# 1.5
height = 100
for i in range(0, 10):
height /= 2
print(height)

a = 2**10
print(a)
print(100/a)

1.7

在一个停车场内,汽车、摩托车共停了 48 辆,其中每辆汽车有 4 个轮子,每辆摩托车有 3 个轮子,这些车共有 172 个轮子,编程输出停车场内有汽车和摩托车的数量。


# 1.7
for i in range(1,48):
for j in range(1,48-i):
if ((i * 4 + j * 3) == 172):
print(f'汽车{i}辆, 摩托车{j}辆')
continue
continue
pass

1.9九九乘法表

选择乘法口诀助记功能,输出阶梯形式的 9*9 乘法口诀表 

# 1.9
for i in range(1, 10):
for j in range(1, 10):
print(f'{i}*{j}=', i * j, end=' ')
print()
pass

 

i = 1  # 计算器
while i < 10: # 外循环里面写内循环
# print(i)
j = 1 # 内循环计数器
while j < i + 1: # 内循环判断条件
print(f"{j}*{i}={i * j}", end='\t') # 执行代码
j += 1 # 内循环自增
print() # 换行操作
i += 1 # 外循环自增1

  

1.16

已知鸡和兔的总数量为 n,总腿数为 m。输入 n m,依次输出鸡和兔的数目,如果无解, 则输出“No  answer(不要引号)

# 16
n = int(input('输入鸡和兔的总数量:'))
m = int(input('输入总腿数:'))
for i in range(1, int(m / 2)):
for j in range(1, n):
if i * 2 + j * 4 == m:
print(f'鸡的数量为:{i},兔的数量为:{j}')
else:
continue
continue
else:
print('No answer')


1.18

啤酒每罐 2.3 元,饮料每罐 1.9 元。小明买了若干啤酒和饮料,一共花了 82.3 元。我们还知道他买的啤酒比饮料的数量少,请你编程计算他买了几罐啤酒。

 

# 1.18
for i in range(1, int(82.3 / 2.3)):
for j in range(1, int(82.3 / 1.9)):
if i < j:
if i * 2.3 + j * 1.9 == 82.3:
print(f'买了{i}罐啤酒')
else:
continue
else:
pass

 

posted @ 2023-01-22 23:46  Py小阿白  阅读(647)  评论(0)    收藏  举报