python第三次作业

1. 打印课堂上图案
layer=int(input("需要打印的层数:"))
for i in range(1,layer+1):
    for j in range(i):
        print("*",end="")
    print()
直角三角形右
layers = int(input("请输入要打印的层数:"))
for i in range(1, layers + 1):
        for _ in range(layers - i):  
            print(" ", end="")   
        for _ in range(i):  
            print("*", end="")  
        print()
等腰三角形
layers = int(input("请输入要打印的层数:"))
for i in range(1, layers + 1):
        for _ in range(layers - i):  
            print(" ", end="")   
        for _ in range(2*i-1):  
            print("*", end="")  
        print()
等腰三角形倒
layers = int(input("请输入要打印的层数:"))
for i in range(layers,0,-1):
        for _ in range(layers - i):  
            print(" ", end="")   
        for _ in range(2*i-1):  
            print("*", end="")  
        print()
菱形:
layers = int(input("请输入要打印的层数:"))
for i in range(1, layers + 1):
        print(' ' * (layers - i) + '$ ' * i)
for i in range(layers - 1, 0, -1):
        print(' ' * (layers - i) + '$ ' * i)
空心:
rows =int(input("输入菱形的层数:"))
for i in range(rows):
    for j in range(rows - i - 1):
        print(" ", end="")
   
    for j in range(2 * i + 1):
        if j == 0 or j == 2 * i:
            print("*", end="")
        else:
            print(" ", end="")
    print()
for i in range(rows - 2, -1, -1):
    for j in range(rows - i - 1):
        print(" ", end="")
    for j in range(2 * i + 1):
        if j == 0 or j == 2 * i:
            print("*", end="")
        else:
            print(" ", end="")
    print()

 

2. 判断一个数是否是质数(素数)
num = int(input("输入一个整数:"))
if num<=1:
    print("不是")
if num==2:
   print("是素数")
if num>2:
   for i in range(2,int(num**0.5)+1):
    if num%i==0:
        print("不是素数")
        break
   else:
       print("是素数")

 

3. 设计一个程序,完成(英雄)商品的购买(界面就是第一天打印的界面)
print("          英雄商城英雄列表")
print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~\n")
print("编号  姓名     昵称     价格  库存  描述\n")
print("1     盲僧   迷失之牙  3500  100  丛林不会原谅盲目与无知\n")
print("2     锐雯   放逐之刃  4000  100  她是残忍高效的战士 \n")
print("3     薇恩   暗夜猎手  3500  100  这个世界不想人们想象的那么美好\n")
print("4     扎克   生化魔人  3000  100  即使你没有脊柱,你也必须站起来\n")
print("5     杰斯  未来守护者 2500  100  武装着睿智与魅力,你的选择没有错\n")
print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~")
change=int(input("(温馨提示)请输入您的选项:"))
if change == 1 :
    print("英雄购买票据")
    print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~\n")
    print("英雄名称:盲僧(史诗)")
    print("英雄属性:生命值428(+85)/能量值200(+0)/移动速度425/攻击力55.8(+3.2)\n攻击速度0.651(+3.1%)/护甲值24(+1.25)/攻击距离125\n")
    print("英雄座右铭:一人之行可灭世,众人之勤可救世!\n英雄价格:3000\n活动折扣:9.5\n")
    print("插播广告:当风云变色,当流离失所,世界不再是旧日模样\n你是否会为了自己的梦想战斗,直至力战身亡,直至彼岸他乡")
    print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~")
    purchase =str(input("请问是否购买:"))
    if purchase == "是":
        print("英雄名称:盲僧(史诗)\n英雄价格:10000\n活动折扣:9.5\n")
        num  =int(input("请输入购买数量:"))
        if num ==1:
            print("应付付款:9500\n实际付款:10000\n找零:500\n")
        else:
            print("对不起,英雄限购一")
else:
    print("退出")
4. 有一些四位数,百位数字都是3,十位数字都是6,并且它们既能被2整除,又能被3整除,求这样的四位数中最大的和最小的两数各是几?
min_num = None
for i in range(3360, 10000, 10):                                       
    if i % 2 == 0 and i % 3 == 0:
        min_num = i
        break
    
max_num = None
for i in range(9936, 3359, -10):
    if i % 2 == 0 and i % 3 == 0:
        max_num = i
        break

print(f"最小的满足条件的四位数是: {min_num}")
print(f"最大的满足条件的四位数是: {max_num}")

 

5. 编程求一个四位自然数ABCD,它乘以A后变成DCBA
for num in range(1000, 10000):
    A = num // 1000
    B = (num // 100) % 10
    C = (num // 10) % 10
    D = num % 10

    product = num * A                                    
    reversed_product = int(str(D) + str(C) + str(B) + str(A))

    if product == reversed_product:
        print(f"符合条件的四位数是: {num}")

 

6. 用户输入两个数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(f"{a}")
else:
     print(f"{b}")

 

7. 请输入一个数,判断这个数是偶数还是奇数,如果使用偶数,请判断从1到该数是3的倍数有哪些,如果是奇数,请判断从1到该数是5的倍数有哪些
num=int(input("请输入一个数"))
if num%2!=0:
    print("是奇数")
    for i in range(1,num+1):
       if i%5==0:
        print(f"是五的倍数有:{i}")
else:
    print("是偶数")
    for i in range(1,num+1):
       if i%3==0:
          print(f"是三的倍数有:{i}")

 

8. 某商店T恤的价格为35元/件(2件9折,3件以上8折),裤子的价格为120 元/条(2条以上9折).小明在该店买了3件T恤和2条裤子,请计算并显示小明应该付多少钱?
shirt=35
pants=120
purchase_2=int(input("请输入你要购买的裤子的件数:"))
purchase_1=int(input("请输入你要购买的衬衫的件数:"))
if purchase_1==2:
    price=shirt*purchase_1*0.9
    print("衬衫的价格是:",price)
elif purchase_1>=3:
    price_2=shirt*purchase_1*0.8
    print("衬衫的价格是:",price_2)
elif purchase_1==1:
      print("衬衫的价格是:",35)
else:
        print("输入错误")
if purchase_2==1:
    print("裤子的价格是120元")
elif purchase_2>=2:
    print(f"裤子的价格是{pants}*{purchase_2}={pants*purchase_2}")
else:
        print("输入错误")
print(f"总计花费{pants*purchase_2}+{price_2}={pants*purchase_2+price_2}")

 

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

chickens = 0
rabbits = 0

for chickens in range(0, heads+1):
    rabbits = heads - chickens
    chickens_feet = chickens * 2
    rabbits_feet = rabbits * 4
    total_feet = chickens_feet + rabbits_feet
    if total_feet == feet:
        print(f"鸡有 {chickens}只,兔有{rabbits}只"  )
        break

 

10. 猜数字游戏(使用random模块完成)
        电脑随机一个范围内的数,用户输入数据判断,
        如果数大了,提供”数大了“
        成功之后,加上用户是否继续功能
mport random

print("猜数字游戏开始!")

while True:

  random_number = random.randint(1, 100) 

  while True:
    guess = int(input("请输入你猜的数字:"))
    
    if guess > random_number:
        print("数字大了!")
    elif guess < random_number: 
        print("数字小了!")
    else:
        print("恭喜你猜对了!")
        break

  play_again = input("是否继续游戏?(y/n)")
  if play_again == "y":
      continue
  else:
      break

print("游戏结束!")

 

11. 猜拳游戏:石头、剪刀、布的游戏
player_change=int(input("请选择(石头(0)剪刀(1)布(2)):"))
     print("你的选择是:",changes[player_change])
     com_random =random.randint(0,2)
     print("电脑的选择是:",changes[com_random])
     if  player_change== com_random:
         print("平局")
         break
     elif (player_change==0 and com_random==1) or (player_change==1 and com_random==2) or (player_change==2 and com_random==0):
          print("你赢了")
          break
     else:
         print("你输了")
         break

 

 
posted @ 2024-03-21 20:26  青鸢..i  阅读(35)  评论(0)    收藏  举报