• 第四次作业


    1.打印各种图形

    A.矩形

    1. a = int(input("请输入行数: "))
    2. i = 0
    3. while i < a:
    4. print("*"*10)
    5. i+=1

    结果:

    B.直角三角形

    1. a = int(input("请输入行数: "))
    2. i = 0
    3. while i
    4. print("*"*(i+1))
    5. i+=1

    结果:

    C.反直角三角形

    1. i = 1
    2. n = int(input("请输入行数:"))
    3. while i <= n:
    4. j = 1
    5. while j <= n-i:
    6. print(' ',end=' ')
    7. j += 1
    8. k = 1
    9. while k <= i:
    10. print('*',end=' ')
    11. k += 1
    12. print()
    13. i += 1

    结果:

    D.菱形

    第一种:

    1. n = int(input("请输入菱形的边长:"))
    2. for i in range(n):
    3. print(" " * (n - i - 1) + "*" * (2 * i + 1))
    4. for i in range(n - 2, -1, -1):
    5. print(" " * (n - i - 1) + "*" * (2 * i + 1))

    第二种:

    1. n = int(input("请输入菱形的边长:"))
    2. while n % 2 == 0:
    3. n = int(input("请输入奇数行:"))
    4. for i in range(1,(n // 2 + 2)): #打印上半截,比一半还多一行,所以加一;还加了一个1,是因为for循环中,后面那一位加不到
    5. for j in range(n - 1):
    6. print(" ",end="")
    7. for j in range(2 * n - 1):
    8. print("*",end="")
    9. print()
    10. for i in range(n // 2,0,-1):
    11. for j in range(n - i):
    12. print(" ",end="")
    13. for j in range(2 * i -1):
    14. print("*",end="")
    15. print()

    结果:

    E.空心菱形

    1. layer = int(input("输入行数:"))
    2. for i in range(1, layer//2 + 2):
    3. for j in range(layer - i):
    4. print(" ", end="")
    5. for j in range(2 * i -1):
    6. if j == 0 or j == 2 * i -2 :
    7. print("*",end="")
    8. else:
    9. print(" ",end="")
    10. print()
    11. for i in range(layer // 2,0,-1):
    12. for j in range(layer - i):
    13. print(" ",end="")
    14. for j in range(2 * i -1):
    15. if j == 0 or j == 2 * i -2:
    16. print("*",end="")
    17. else:
    18. print(" ",end="")
    19. print()

    结果:

    F.对角线菱形

    1. layer = int(input("请输入你想要的行数:"))
    2. while layer % 2 == 0:
    3. layer = int(input("请输入奇数行:"))
    4. for i in range(layer // 2 + 2):
    5. for j in range(layer - i):
    6. print(" ",end = "")
    7. for j in range(2 * i - 1):
    8. # j==0和j==2*i-1和j==(2*i-2)/2和最后一行都要打出*,注意:j控制列,i控制行!
    9. if j == 0 or j == 2 * i - 2 or j == i - 1 or i == layer // 2 + 1:
    10. print("*",end="")
    11. else:
    12. print(" ",end="")
    13. print()
    14. for i in range(layer // 2, 0, -1):
    15. for j in range(layer - i):
    16. print(" ",end="")
    17. for j in range(2 * i - 1):
    18. if j == 0 or j == 2 * i -2 or j == i - 1 :
    19. print("*",end="")
    20. else:
    21. print(" ",end="")
    22. print()

    结果:

     2.用户输入两个数a,b。如果a能被b整除或a+b大于1000,则输出a;否则输出b。

    1. a = int(input("请输入第一个数字:"))
    2. b = int(input("请输入第二个数字: "))
    3. if a // b == 0 or a + b == 1000:
    4. print(a)
    5. else:
    6. print(b)

    结果:

     3.判断奇数和偶数

    1. um = int(input("请输入一个整数:"))
    2. if num & 1 == 0:
    3. print(f"{num}为even_number,从1到{num}是3的倍数有:")
    4. for i in range(1, num + 1):
    5. if i % 3 == 0:
    6. print(i)
    7. else:
    8. print(f"{num}是odd_number,从1到{num}是5的倍数有:")
    9. for x in range(1,num + 1):
    10. if x % 5 == 0:
    11. print(x)

    结果:

     4.应用题

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

    1. shirt = 35
    2. trousers = 120
    3. x = int(input('请输入买T恤的件数:'))
    4. y = int(input('请输入买裤子的件数:'))
    5. if x == 2:
    6. shirt = shirt * 0.9
    7. if x > 3:
    8. shirt = shirt * 0.8
    9. if y > 2:
    10. trousers = trousers * 0.9
    11. print(f'小明应付{x * shirt + y * trousers}元')

    结果:

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

    第一种:

    1. for x in range(1, 36):
    2. y = 35 - x
    3. if 4 * x + 2 * y == 94:
    4. print('兔子有%s只,鸡有%s只' % (x, y))

    第二种:

    1. for x in range(1, 23):
    2. y = 35 - x
    3. if 4 * x + 2 * y == 94:
    4. print('兔子有%s只,鸡有%s只' % (x, y))

    结果:

    5.猜拳游戏

    1. import random
    2. computer = random.randint(0,2)
    3. user = int(input("请出拳:0(石头),1(剪刀),2(布)"))
    4. while 0 <= user <= 2:
    5. if user == computer:
    6. print("平局")
    7. break
    8. elif (user == 0 and computer == 2) or (user == 0 and computer == 1) or (user == 1 and computer == 0):
    9. print("电脑胜利")
    10. break
    11. elif (user == 0 and computer == 1) or (user == 1 and computer == 2) or (user == 2 and computer == 0):
    12. print("玩家胜利")
    13. break

    结果:

     6.判断题

    答案:BDF

    7. 求50~150之间的质数是那些?

    1. num = int(input("请输入一个数:"))
    2. flag = 1 #j假设每一个传入的数据都是质数
    3. for i in range(2,num // 2 + 1): #对代码进行优化;只需要进行该数的一半;
    4. if num % i == 0:
    5. flag = 0
    6. break #跳出循环;因为当第六行代码执行的时候,这个数就百分百不是质数了;
    7. if flag:
    8. print(f"{num}是质数!")
    9. else:
    10. print(f"{num}不是质数!")

    结果:

    8. 打印输出标准水仙花数,输出这些水仙花数

    1. for i in range(100,1000):
    2. a = i // 100
    3. b = i % 100 // 10
    4. c = i % 10
    5. if a ** 3 + b ** 3 + c ** 3 == i:
    6. print(i)

    结果:

     9.验证:任意一个大于9的整数减去它的各位数字之和所得的差,一定能被9整除

    1. num = int(input("请输入一个大于9的整数:"))
    2. count = 0
    3. src_num = num
    4. while num > 0:
    5. count += num % 10 #把个位数弄出来
    6. num //= 10 #将个位数移出去
    7. if (src_num - count) % 9 == 0:
    8. print(f"{num}验证成功")
    9. else:
    10. print(f"{num}验证失败")

    结果:

     10.一个五位数,若在它的后面写上一个7,得到一个六位数A,若在它前面写上一个7,得到一个六位数B,B是A的五倍,求此五位数.

    1. for i in range(10000,100000):
    2. A = i * 10 + 7
    3. B = 7 * 100000 + i
    4. if B // A == 5:
    5. print(i)

  • 相关阅读:
    【ELM预测】基于极限学习机进行正弦波预测附matlab代码
    【数学建模】历年数学建模国赛评价类题目汇总
    CSS书写规范笔记
    【低码】asp.net core 实体类可生产 CRUD 后台管理界面
    【LIN总线测试】——LIN从节点物理层测试
    gRPC简介
    第6章 java内部类
    java 后端备份数据库数据
    ZYNQ之定时器
    Typescript 中根据某个字段判断其他字段是否必传
  • 原文地址:https://blog.csdn.net/m0_74543941/article/details/133912745