python第三轮作业-循环

1.请输入两个数和一个符号,完成两个数的+ - * / % // **

x=float(input('输入数字:'))
y=input("输入符号:")
z=float(input("输入数字:"))
flag=0
while flag<1:
    if y == "+" :
        print("%.2f + %.2f = %.2f" % (x, z, (x + z)))
        flag = 1
    elif y == "-":
        print("%.2f - %.2f = %.2f" % (x, z, (x - z)))
        flag = 1
    elif y == "*":
        print("%.2f * %.2f = %.2f" % (x, z, (x * z)))
        flag = 1
    elif y == "/":
        print("%.2f / %.2f = %.2f" % (x, z, (x / z)))
        flag = 1
    elif y == "%":
        print("%.2f %% %.2f = %.2f" % (x, z, (x % z)))
        flag = 1
    elif y == "//":
        print("%.2f // %.2f = %.2f" % (x, z, (x // z)))
        flag = 1
    elif y == "**":
        print("%.2f ** %.2f = %.2f" % (x, z, (x ** z)))
        flag = 1

2.设计一个程序,完成(英雄)商品的购买(界面就是第一天打印的界面)

展示商品信息(折扣)->输入商品价格->输入购买数量->提示付款
输入付款金额->打印购买小票(扩展)

print("\t\t英雄联盟商城首页")
print("~*"*20)
print("\r")
print("\t 1.进入英雄超市")
print("~*"*20)
input('(温馨提示)请输入1:')
print(end='\n')
print("\t\t英雄联盟英雄列表")
print("~ *"*20)
print("\r")
print("编号 姓名 昵称 价格 库存 描述")
print("1 纳尔 迷失之牙 3500 0 丛林不会原谅盲目与无知")
print("2 锐雯 放逐之刃 4000 0 她是残忍高效的战士")
print("3 薇恩 暗夜猎手 3500 0 这个世界不想人们想象的那么美好")
print("4 扎克 生化魔人 3000 0 即使你没有脊柱,你也必须站起来")
print("5 阿狸 九尾妖狐 10000 100 一人之行可灭世,众人之勤可救世!")
print("~ *"*20)
x=int(input('(温馨提示)请输入您要购买的英雄编号:'))
print(end='\n')
while x<=5:
    if x==5:
        print("\t\t英雄商城购买英雄")
        print("~*"*20)
        print("\r")
        print("\t英雄名称:九尾妖狐(史诗)")
        print("\t英雄属性:生命值428(+85)/能量值200(+0)/移动速度425/攻击力55.8(+3.2)")
        print("\t\t攻击速度0.651(+3.1%)/护甲值24(+1.25)/攻击距离125")
        print("\r")
        print("\t英雄座右铭:一人之行可灭世,众人之勤可救世!")
        print("\t英雄价格:10000")
        print("\t活动折扣:9.5")
        print("\r")
        print("插播广告:当风云变色,当流离失所,世界不再是旧日模样")
        print("你是否会为了自己的梦想战斗,直至力战身亡,直至彼岸他乡")
        print("~ *"*20)
        y=input('(温馨提示)请付款:')
        if y=="10000":
            print("\t\t英雄商城购买英雄")
            print("英雄购买票据")
            print("~ *" * 20)
            print("\r")
            print("\t英雄名称:九尾妖狐(史诗)")
            print("\t英雄价格:10000")
            print("\t活动折扣:9.5")
            print("\r")
            print("\t应付付款:9500")
            print("\t实际付款:10000")
            print("\t找零:500")
            print("\r")
            print("插播广告:当风云变色,当流离失所,世界不再是旧日模样")
            print("你是否会为了自己的梦想战斗,直至力战身亡,直至彼岸他乡")
            print("~ *" * 20)
            input('(温馨提示)按任意键返回上一级菜单:')
            break
        print(end='\n')
    elif x == 1 or x==2 or x==3 or x==4:
        print("该英雄没有库存")
        print("输入大于5的数则退出系统")
        x=int(input("请输入数字:"))
        continue
    else :
        break
print("已退出登陆")

3.健康计划

用户输入身高(m),体重(kg)
计算公式:BMI = 体重 / 身高^2
BMI < 18.5:过轻
18.5≤ BMI <24:正常
24 ≤ BMI <27:过重
27 ≤ BMI < 30:轻度肥胖
30 ≤ BMI < 35:中度肥胖
BMI ≥ 35:重度肥胖

while True:
    height=float(input("请输入身高(m):"))
    weight=float(input("请输入体重(kg):"))
    BMI=weight/(height**2)
    if BMI<18.5:
        print("过轻")
        x = input("退出系统(y):")
        if x == "y":
            break
    elif BMI <=18.5 and BMI < 24:
        print("正常")
        x = input("退出系统(y),否则按任意键:")
        if x == "y":
            break
    elif BMI <=24 and BMI < 27:
        print("过重")
        x = input("退出系统(y),否则按任意键:")
        if x == "y":
            break
    elif BMI <=27 and BMI < 30:
        print("轻度肥胖")
        x = input("退出系统(y),否则按任意键:")
        if x == "y":
            break
    elif BMI <=30 and BMI < 35:
        print("中度肥胖")
        x = input("退出系统(y),否则按任意键:")
        if x == "y":
            break
    elif BMI >=35:
        print("重度肥胖")
        x = input("退出系统(y),否则按任意键:")
        if x == "y":
            break

4.打印图案

rv

line=int(input("输入行数:"))
flag=0
while flag < line:
    print("*"*(flag+1),end="\n")
    flag += 1

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

line=int(input("输入行数:"))
for i in range(1,line+1):
    write_num=line-i
    for j in range(write_num):
        print(" ",end="")
    star_num=2*i-1
    for j in range(star_num):
        print("*",end="")
    print()

在这里插入图片描述

line=int(input("输入行数:"))
for i in range(line,0,-1):
    write_num=line-i
    for j in range(write_num):
        print(" ",end="")
    star_num=2*i-1
    for j in range(star_num):
        print("*",end="")
    print()

在这里插入图片描述

line=int(input("输入行数:"))
for i in range(1,line):
    write_num=line-i
    for j in range(write_num):
        print(" ",end="")
    star_num=2*i-1
    for j in range(star_num):
        print("*",end="")
    print()
for i in range(line,0,-1):
    write_num=line-i
    for j in range(write_num):
        print(" ",end="")
    star_num=2*i-1
    for j in range(star_num):
        print("*",end="")
    print()

在这里插入图片描述

layer=int(input("请输入奇数行数:"))
while layer%2==0:
    layer=int(input("不是奇数,请重新输入:"))
#输出上半层三角形
for i in range(1,layer//2+2): #用i表示每一行
    num1=layer//2+1-i         #num1表示空格的数量
    for j in range(num1):
        print(" ",end="")
    num2=i*2-1                #num2表示星号的数量
    for j in range(num2):
    #判断是否打印第一行或最后一个星号
        if j==0 or j==num2-1:
            print("*",end="")
        else:
            print(" ",end="")
    print("")                #换行

for i in range(layer//2,0,-1):
    num1=layer//2+1-i
    for j in range(num1):
        print(" ",end="")
    num2=i*2-1
    for j in range(num2):
        if j==0 or j==num2-1:
            print("*",end="")
        else:
            print(" ",end="")
    print("")
#要打印空心菱形,只需在打印星号时进行判断,如果是本行中第一个和最后一个星号就打印星号,否则就打印空格

在这里插入图片描述

layer=int(input("请输入奇数行数:"))
while layer%2==0:
    layer=int(input("不是奇数,请重新输入:"))
#输出上半层三角形
for i in range(1,layer//2+1): #用i表示每一行
    num1=layer//2+1-i         #num1表示空格的数量
    for j in range(num1):
        print(" ",end="")
    num2=i*2-1                #num2表示星号的数量
    for j in range(num2):
    #判断是否打印第一行或最后一个星号
        if j==0 or j==num2-1 or j==num2//2:
            print("*",end="")
        else:
            print(" ",end="")
    print("")                #换行
print("*"*(num2+2))

for i in range(layer//2,0,-1):
    num1=layer//2+1-i
    for j in range(num1):
        print(" ",end="")
    num2=i*2-1
    for j in range(num2):
        if j==0 or j==num2-1 or j==num2//2:
            print("*",end="")
        else:
            print(" ",end="")
    print("")
#要打印空心菱形,只需在打印星号时进行判断,如果是本行中第一个和最后一个星号就打印星号,否则就打印空格

5.输入数,判断这个数是否是质数

prime=int(input("请输入数字:"))
for i in range(2,prime+1):
	print(i)
    if prime%i==0:
        break
if prime==i:
    print("%d是素数"%prime)
else :
    print("%d不是素数" % prime)


6.让用户输入一个月份,判断这个月是哪个季节?

假定3到4月是春季,5到8月是夏季,9到10是秋季,11、12、1、2月是冬季

month=int(input("请输入月份:"))
if month == 3 or month == 4:
    print("%d月是春季"%month)
elif month>=5 and month <=8:
    print("%d月是夏季"%month)
elif month==9 or month == 10:
    print("%d月是秋季"%month)
elif month==1 or month == 2 or month==11 or month == 12:
    print("%d月是冬季"%month)

7.登陆账号

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

while True:
    name=input("请输入用户名:")
    code=input("请输入密码:")
    if name=="admin" and code=="88888":
        print("账号登陆成功")
        break
    elif name=="admin" and code != "88888":
        print("密码错误")
    elif name !="admin" and code=="88888":
        print("用户名不存在")
    else :
        print("错误")

8.有一些四位数,百位数字都是3,十位数字都是6,并且它们既能被2整除,又能被3整除,求这样的四位数中最大的和最小的两数各是几?

max,min=0,10000
for figure in range(1000,10000):
    if figure%1000//100==3 and figure%100//10==2 and figure%3==0 and figure%2==0:
        if max < figure:
            max=figure
        if min >figure:
            min=figure
print("%d是最大的四位数,%d是最小的四位数"%(max,min))

9.编程求一个四位自然数ABCD,它乘以A后变成DCBA

for figure in range(1000,10000):
    if figure*(figure//1000)==(((figure%10)*1000)+((figure%100//10)*100)+((figure%1000//100)*10)+(figure//1000)):
        print(figure)
        break

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("a=%d"%a)
else:
    print("b=%d"%b)

11.输入赵本山的考试成绩,显示所获奖励

成绩==100分,爸爸给他买辆车
成绩>=90分,妈妈给他买MP4
90分>成绩>=60分,妈妈给他买本参考书
成绩<60分,什么都不买

grade=int(input("请输入赵本山成绩:"))
if grade == 100:
    print("喜提新车")
elif grade >= 90:
    print("喜提mp4")
elif 60<=grade<90:
    print("参考书一本")
elif grade<60:
    print("啥都没有")

12.请输入一个数,判断这个数是偶数还是奇数,如果使用偶数,请判断从1到该数是3的倍数有哪些,如果是奇数,请判断从1到该数是5的倍数有哪些

figure=int(input("输入一个数:"))
if figure%2==0: #偶数
    print("%d是偶数" % figure)
    for i in range(1,figure+1):
        if i%3==0:
            print(i)
else:
    print("%d是奇数" % figure)
    for i in range(1,figure+1):
        if i%5==0:
            print(i)

13.输入三边的长度,求三角形的面积和周长(海伦公式)

海伦公式:S=√p(p-a)(p-b)(p-c)

a=float(input("输入a:"))
b=float(input("输入b:"))
c=float(input("输入c:"))
C=a+b+c
S=pow(C/2*(C/2-a)*(C/2-b)*(C/2-c),0.5)
print("三角形的周长为%f,面积为%f"%(C,S))

注:pow(n,m次方),n的m次方


14.某商店T恤的价格为35元/件(2件9折,3件以上8折),裤子的价格为120 元/条(2条以上9折).小明在该店买了3件T恤和2条裤子,请计算并显示小明应该付多少钱?

while True:
    a = int(input("请输入购买T恤的数量(不买则输入0):"))
    b = int(input("请输入购买裤子的数量(不买则输入0):"))
    if a<=1 and b==0:
        spell=a*35
        print("小明应支付%f" % spell)
        i=input("输入Y退出购买:")
        if i=="Y":
            break
    elif a<=1 and b==1:
        spell=a*0.9*35+120
        print("小明应支付%f" % spell)
        i = input("输入Y退出购买:")
        if i == "Y":
            break
    elif a==2 and b==1:
        spell=a*0.9*35+b*120
        print("小明应支付%f" % spell)
        i = input("输入Y退出购买:")
        if i == "Y":
            break
    elif a==2 and b==0:
        spell=a*0.9*35
        print("小明应支付%f" % spell)
        i = input("输入Y退出购买:")
        if i == "Y":
            break
    elif a>=3 or b>=2:
        spell=a*0.8*35+b*120*0.9
        print("小明应支付%f" % spell)
        i = input("输入Y退出购买:")
        if i == "Y":
            break

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

for j in range(1,35):               #鸡最多有35只,最少有1只
    for t in range(0,23):           #兔子最少0只,最多有23只
        if (j+t==35 and ((2*j)+(4*t))==94):
            print("鸡有%d只,兔有%d只"%(j,t))

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
while True:
    a=int(input("请输入数字a:"))
    print("\t a\t\ta^2\t\t\ta^3")
    for i in range(1,a+1):
        print("\t",i,"\t\t",i**2,"\t\t\t",i**3)

19.输入一个年份,判断该年是否是闰年

year=int(input('输入年份:'))
if (year%4) == 0:
    if (year % 100) == 0:
        if (year % 400) == 0:
            print("这一年是闰年")
        else:
            print("这一年不是闰年")
    else:
        print("这一年是闰年")
else:
    print("这一年不是闰年")
  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值