Python循环、if语句练习

作业1:计算器:
请输入两个数和一个符号,完成两个数的+ - * / % // **

解法:简单的加减乘除

print("请输入两个数字及一个符号(+、-、*、/、%)")
a = float(input("第一个数为:"))
b = float(input("第二个数为:"))
c = input("符号为:")
if c=="+":
	print("%.3s"%(a+b))
elif c=="-":
	print("%.3s"%(a-b))
elif c=="*":
	print("%.3s"%(a*b))
elif c=="/":
	print("%.3s"%(a/b))
elif c=="%":
	print("%.3s"%(a%b))
else:
	print("无效操作")

在这里插入图片描述

作业2:设计一个程序,完成(英雄)商品的购买(界面就是第一天打印的界面)
展示商品信息(折扣)->输入商品价格->输入购买数量->提示付款
输入付款金额->打印购买小票(扩展)
解法:简单的if语句应用

print("\t   英雄联盟商城登陆界面\t\t\t")
print("~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*")
print("\t\t1.用户登录\t\t\t")
print("\t\t2.用户注册\t\t\t")
print("\t\t3.退出游戏\t\t\t")
print("~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*")
print("请输入您的选项: ",end="")
choice = int(input())
if choice == 1:
	username = input("请输入您的用户名:")
	password = input("请输入您的密码:")
	if username == "Jeff" and password == "123":
		print("登陆成功 ,欢迎{}进入游戏".format(username))
		print("\n")
		while True:
			print("\t\t英雄联盟界面\t\t\t")
			print("~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~")
			print("\t\t1.商城中心\t\t\t")
			print("\t\t2.开启排位\t\t\t")
			print("\t\t3.退出登录\t\t\t")
			print("~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~")
			choice = int(input("请输入您的选项: "))
			
			if choice == 1:
				print("\n")
				print("欢迎来到商城中心,尽情购物吧~")
				print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~")
				print("\t\t1.英雄\t\t\t")
				print("\t\t2.铭文\t\t\t")
				print("\t\t敬请期待~\t\t\t")
				print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~\n")
				print("请输入您的选项: ",end="")
				choice = int(input())

				
				if choice == 1:
					print("\n")
					print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~* ~* ~* ~* ~")
					print("\t\t本期为您推荐的英雄是:亚索(100¥)")
					print("\t亚索是一位近战爆发AD刺客,双突进的技能设置使得他在中单游刃有余。")
					print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~* ~* ~* ~* ~\n")
					print("是否需要购买(Y/N)")
					num = input("请输入您的选项:")
					if num == "Y":
						print("购买成功!!!快去练练新英雄吧~")
						print("\n")
					elif num == "N":
						print("购买失败,在考虑一下吧~")
						print("\n")
					else :
						print("无效操作!!!")
					
				elif choice == 2:
					print("\n")
					print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~\n")
					print("\t\t本期为您推荐的是攻击铭文(100¥):")

					print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~\n")
					print("是否需要购买(Y/N)")
					num = input("请输入您的选项:")
					if num == "Y":
						print("购买成功!!!快去装备起来吧~")
						print("\n")
					elif num == "N":
						print("购买失败,在考虑一下吧~")
						print("\n")
					else :
						print("无效操作!!!")

				else:
					input("对不起,没有找到您需要的选项!请重新选择,按任意键继续\n")
			elif choice == 2:
				pass
			elif choice == 3:
				sys.exit()

	else:
		input("对不起,找不到您的信息!请重新登录,按任意键继续\n")
elif choice == 2:
	pass
elif choice == 3:
	sys.exit()
else:
	print("您的输入有误,请重新输入!")	

部分效果图如下:
在这里插入图片描述在这里插入图片描述

作业3:
健康计划
用户输入身高(m),体重(kg)
计算公式:BMI = 体重 / 身高^2

	BMI < 18.5:过轻
	18.5≤ BMI <24:正常
	24 ≤ BMI <27:过重
	27 ≤ BMI < 30:轻度肥胖
	30 ≤ BMI < 35:中度肥胖
	BMI ≥ 35:重度肥胖

解法:仍然是简单的if语句

print("请输入您的身高(m)和体重(kg)")
high = float(input("您的身高(m):"))
weight = float(input("您的体重(kg):"))
BMI = weight/(high*high)
if BMI<18.5:
	print("过轻")
elif BMI >=18.5 and BMI<24:
	print("正常")
elif BMI>=24 and BMI<27:
	print("过重")
elif BMI>=27 and BMI<30:
	print("轻度肥胖")
elif BMI>=30 and BMI<35:
	print("中度肥胖")
else:
	print("重度肥胖")

部分效果图如下:
在这里插入图片描述

作业4:打印如下图案(直三角形):
*
**
***
****
*****
******
解法:对于循环有一定的了解,且需要发现其规律


a = int(input("请输入你想要的层数:"))
b = 1
while b<=a:
	c = 1
	while c<=2*b-1:
		print("*",end = "")
		c = c + 1
	print()
	b=b+1

在这里插入图片描述
打印普通三角形:

layer = int(input("请输入你想要的层数:"))
for i in range(1,layer+1):
	space = layer - i
	start = 2*i-1
	for j in range(space):
		print(" ",end="")
	for k in range(start):
		print("*",end="")
	print()

在这里插入图片描述
打印倒立三角形:

layer = int(input("请输入您要打印的层数:"))

for i in range(layer, 0, -1):
	# 求出空格的数量
	space_nums = layer - i
	# 求*的数量
	star_nums = 2 * i - 1
	print(" "*space_nums + "*"*star_nums)

在这里插入图片描述
打印菱形:


layer = int(input("请输入需要打印的行数:"))
while layer%2 ==0 or layer < 2:
	layer = int(input("对不起,输入有误,请重新输入,按任意键继续~"))

for i in range(1,layer//2+2):
	
	space = layer-i
	start = 2*i-1

	
	for j in range(space):
		print(" ",end="")

	
	for k in range(start):
		print("*",end="")
	
	print()

for i in range(layer//2,0,-1):

	space = layer-i
	start = 2*i-1

	
	for j in range(space):
		print(" ",end="")


	for k in range(start):
		print("*",end="")
		

	print()

在这里插入图片描述
打印空菱形:

layer = int(input("请输入需要打印的行数:"))


while layer%2 ==0 or layer < 2:
	layer = int(input("对不起,输入有误,请重新输入,按任意键继续~"))



for i in range(1,layer//2+2):
	
	space = layer-i
	start = 2*i-1

	
	for j in range(space):
		print(" ",end="")

	
	for k in range(start):
		"""注意这里为什么要加2,因为上半部分打印的是长的,即多出来一行"""
		if k == 0 or k == start-1 or i==layer//2+2:
			print("*",end="")
		else:
			print(" ",end="")
		
	
	print()


for i in range(layer//2,0,-1):
	
	space = layer-i
	start = 2*i-1

	
	for j in range(space):
		print(" ",end="")

	
	for k in range(start):
		"""注意这里是下半部分的打印;注意分析条件"""
		if k == 0 or k == start-1:
			print("*",end="")
		else:
			print(" ",end="")
		
	
	print()

在这里插入图片描述
作业5:
输入数,判断这个数是否是质数
解法:了解质数的定义

print("请输入一个整数,判断其是否为素数:")
num = int(input())
flag = True

for i in range(2,num):
	if num % i==0:
		flag = False
		break
if flag:
	print(f"{num}是质数")
else:
	print(f"{num}不是质数")	

在这里插入图片描述
作业6:
让用户输入一个月份,判断这个月是哪个季节?假定3到
4月是春季,5到8月是夏季,9到10是秋季,11、12、1、2月是冬季
解法:if语句的应用

n = int(input("请输入月份:"))
if n==1 or n==2 or n==11 or n==12:
	print(f"{n}月是冬季")
elif n==3 or n==4:
	print(f"{n}月是春季")
elif n==5 or n==6 or n==7 or n==8:
	print(f"{n}月是夏季")
elif n==9 or n==10:
	print(f"{n}月是秋季")
else:
	print("无效操作!!!")

在这里插入图片描述

作业7:
提示用户输入用户名,然后再提示输入密码,如果用户名
是“admin”并且密码是“88888”,则提示正确,否则,如果
用户名不是admin还提示用户用户名不存在,如果用户名是
admin则提示密码错误。

name = input("请输入用户名:")
password = input("请输入密码:")
if name =="admin" and password == "88888":
	print("欢迎回家!!!")
elif name !="admin" and password=="88888":
	print("用户名不存在!!!")
elif name =="admin" and password!="88888":
	print("密码错误")
else:
	print("无效输入")

在这里插入图片描述
作业8:有一些四位数,百位数字都是3,十位数字都是6,并且它们既能被2整除,又能被3整除,求这样的四位数中最大的和最小的两数各是几?

numbers = []
for i in range(1, 10): 
    for j in range(10):
        number = i * 1000 + 3 * 100 + 6 * 10 + j
        if number % 2 == 0 and number % 3 == 0:
            numbers.append(number)
print("max:", max(numbers))
print("min:", min(numbers))

在这里插入图片描述
作业9:编程求一个四位自然数ABCD,它乘以A后变成DCBA

def count():
	for a in range(0,10):
		for b in range(0,10):
			for c in range(0,10):
				for d in range(0,10):
					num=a*1000+b*100+c*10+d
					if num*a==d*1000+c*100+b*10+a:
						if num==0:
							continue
						else:
							print(num)

count()

在这里插入图片描述
作业10:用户输入两个数a、b。如果a能被b整除或a加b大于1000,则输出a;否则输出b。

a = int(input("请输入a的值: "))
b = int(input("请输入b的值: "))
if(a%b==0 or a+b>1000):
    print("输出的值为: %s"%(a))
else:
	print("输出的值为: %s"%(b))

在这里插入图片描述

作业11:输入赵本山的考试成绩,显示所获奖励
成绩==100分,爸爸给他买辆车
成绩>=90分,妈妈给他买MP4
90分>成绩>=60分,妈妈给他买本参考书
成绩<60分,什么都不买

achievement = float(input("请输入赵本山考生的成绩:"))
if achievement == 100:
	print("爸爸给他买辆车")
elif achievement>90 or achievement==90:
	print("妈妈给他买MP4")
elif achievement >60 or achievement==60:
		print("妈妈给他买本参考书")
else:
	print("什么都不买")

在这里插入图片描述
作业12:请输入一个数,判断这个数是偶数还是奇数,如果使用偶数,请判断从1到该数是3的倍数有哪些,如果是奇数,请判断从1到该数是5的倍数有哪些

num = float(input("请输入一个数字:"))
i = 1
j = 1
if num%2==0:
	while i<=num:
		if i%3==0:
			print(f"{i}是偶数且还是3的倍数")
		i+=1
else:
	while j <=num:
		if j %5==0:
			print(f"{j}是奇数且还是5的倍数")
		j+=1	

在这里插入图片描述
作业14:某商店T恤的价格为35元/件(2件9折,3件以上8折),裤子的价格为120 元/条(2条以上9折).(例如:小明在该店买了3件T恤和2条裤子,请计算并显示小明应该付多少钱?)

tshirt = int(input("请输入购买T恤的件数: "))
trousers = int(input("请输入购买裤子的件数: "))
if(tshirt == 2 and trousers >= 2):
	print("%s"%(tshirt*0.9*35 + trousers*0.9*120))
elif(tshirt >= 3 and trousers >=2):
    print("%s"%(tshirt*0.8*35 + trousers*0.9*120))
elif(tshirt == 2 and trousers == 1):
    print("%s"%(tshirt*0.9*35 + trousers*120))
elif(tshirt == 1 and trousers >= 2):
    print("%s"%(tshirt*35 + trousers*0.9*120))
elif(tshirt == 3 and trousers == 1):
    print("%s"%(tshirt*35*0.8 + trousers*120))
elif(tshirt == 1 and trousers == 1):
    print("%s"%(tshirt*35 + trousers*120))
elif(tshirt == 1 ):
    print("%s"%(tshirt*35))
elif(trousers == 1 ):
    print("%s"%(trousers*120))
else:
	print("下次再来!")

在这里插入图片描述

作业15:鸡兔同笼,从上面看有35个头,从下面看有94只脚,请问鸡有几只,兔有几只?

n = int(input("请输入脚的数量: "))
m = int(input("请输入头的个数: "))
#n为脚的数量,m为头数
# n = 4*rabbit + 2*chicken
 #m = rabbit + chicken
print("鸡的数量: %d"%(2*m-n/2))
print("兔子的数量:%d"%(n/2-m))

在这里插入图片描述
作业16:猜数字游戏(使用random模块完成)
电脑随机一个范围内的数,用户输入数据判断,
如果数大了,提供”数大了“
成功之后,加上用户是否继续功能

import random


# 生成随机数
computer = random.randint(1, 100)
while True:
	my = int(input("请输入您要猜的数:"))

	if my == computer:
		print("恭喜您,猜对了")
		choice = input("您是否继续?结束请输入(n/N),按任意键继续:")
		if choice == "N" or choice == "n":
			break
		else:
			# 重新生成随机数
			computer = random.randint(1, 100)
	elif my > computer:
		print("对不起,猜大了")
	else:
		print("对不起,猜小了")

print("GAME OVER!!!")

在这里插入图片描述
作业17:猜拳游戏:石头、剪刀、布的游戏

import random

while True:
	computer = random.randint(1,3)
	user = int(input("请选择石头剪刀布(1:石头/2:剪刀/3.布):"))

	if user == computer:
		print("平局")
	elif (user == 1 and computer==2) or (user==2 and computer==3)\
			or (user == 3 and computer==1):
			print("用户获胜!!!")
	else:	
		print("电脑获胜")

在这里插入图片描述
作业18:在控制台上,输入如下信息(使用循环)
a a^2 a^3
1 1 1
2 4 8
3 9 27

print("a\ta^2\ta^3")
def JEFF():
	i = 1
	while i<4:
	 print("%d\t%d\t%d\t"%(i,i**2,i**3))
	 i+=1
JEFF()

在这里插入图片描述

作业19:输入一个年份,判断该年是否是闰年

year = int(input("请输入判断的年份:"))
if(year % 4 ==0 and year % 100 !=0 or year%400 == 0):
	print(f"{year}是闰年")
else:
	print(f"{year}是平年")

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值