学习python第五天作业

1.打印图案

(1)图案1

*            
***
*****
*******
*********
***********
 

num1 = int(input("请输入打印图像的层数:"))
i = 1
while i <= num1:
    print("*"*i, end="")
    print()
    i += 1

(2)图案2

     *        
    **        
   ***        
  ****        
 *****        
******        

num1 = int(input("请输入打印图像的层数:"))
i = 1
while i <= num1:
    print(" "*(num1 - i), end="")
    print("*"*i, end="")
    print()
    i += 1

(3)图案3

     *            
    ***            
   *****        
  *******        
 *********        
***********    

num1 = int(input("请输入打印图像的层数:"))
i = 1
while i <= num1:
    print(" "*(num1 - i), end="")
    print("*"*(2 * i - 1), end="")
    print()
    i += 1

(4)图案4

***********
 *********
  *******
   *****
    ***
     *

num1 = int(input("请输入打印图像的层数:"))
i = 1
while i <= num1:
    print(" "*(i - 1), end="")
    print("*"*(2 * (num1 - i) + 1), end="")
    print()
    i += 1

(5)图案5

     *
    ***
   *****
  *******
 *********
***********
 *********
  *******
   *****
    ***
     *

num1 = int(input("请输入打印图像的层数(奇数层):"))
i = 1
num2 = (num1 + 1) / 2
while i <= num2:
    print(" "*(int(num2) - i), end="")
    print("*"*(2 * i - 1), end="")
    print()
    i += 1
i = 1
while i <= num2 - 1:
    print(" ", end="")
    print(" "*(i - 1), end="")
    print("*"*(2 * (int(num2) - i) - 1), end="")
    print()
    i += 1

(6)图案6

     *
    * *
   *   *
  *     *
 *       *
*         *
 *       *
  *     *
   *   *
    * *
     *    

num1 = int(input("请输入打印图像的层数(奇数层):"))
i = 1
num2 = (num1 + 1) / 2
while i <= num2:
    if i == 1:
        print(" "*(int(num2) - i), end="")
        print("*")
    else:
        print(" "*(int(num2) - i), end="")
        print("*", end="")
        print(" "*(2 * (i - 1) - 1), end="")
        print("*")
    i += 1
i = num2 - 1
while i >= 1:
    if i == 1:
        print(" "*(int(num2) - int(i)), end="")
        print("*")
    else:
        print(" "*(int(num2) - int(i)), end="")
        print("*", end="")
        print(" "*(2 * (int(i) - 1) - 1), end="")
        print("*")
    i -= 1

(7)图案7

      *
     ***
    * * *
   *  *  *
  *   *   *
***********
  *   *   *
   *  *  *
    * * *
     ***
      *

num1 = int(input("请输入打印图像的层数(奇数层):"))


while num1 % 2 == 0:
    num1 = int(input("请输入打奇数层:"))

    
for i in range(1, num1 // 2 + 2):
    for j in range(1, num1 // 2 + 2 - i):
        print(" ",end="")
    for j in range(1, 2 * i):
        if j == 2 * i -1 or j == 1 or j == i or i == num1 // 2 + 1:
            print("*", end="")
        else:
            print(" ",end="")
    print()
for i in range(num1 // 2, 0, -1):
    for j in range(num1 // 2 - i + 1, 0, -1):
        print(" ",end="")
    for j in range(2 * i -1, 0, -1):
        if j == 2 * i -1 or j == 1 or j == i:
            print("*", end="")
        else:
            print(" ",end="")
    print()

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

a = int(input())
b = int(input())


if a % b == 0 or a + b > 1000:
    print(a)
else:
    print(b)

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

a = int(input())
i = 1
if a & 1 != 0:
    while i <= a:
        if i % 3 == 0:
            print(i)
        i += 1
i = 1
if a & 1 == 0:
    while i <= a:
        if i % 5 == 0:
            print(i)
        i += 1

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

a = 35
b = 120
c = int(input("请输入要购买的T恤件数:"))
d = int(input("请输入要购买的裤子件数:"))
if c == 2:
    sum1 = c * a * 0.9
elif c >= 3:
    sum1 = c * a * 0.8
else:
    sum1 = a
if d >= 2:
    sum2 = d * b * 0.9
else:
    sum2 = b
print("小明应该付%s元"%(sum1 + sum2))

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

a = int(input("请输入头的数量:"))
b = int(input("请输入脚的数量:"))
c = (a * 4 - b) / 2
d = a - c
print("鸡有%d只,兔有%d只" %(c, d))

6.猜拳游戏:石头、剪刀、布的游戏

import random
#  1、2、3分别表示“石头、剪刀、布“
flag = True
while flag:
    a = random.randint(1,3)
    b = int(input("请输入:"))
    while b > 3 or b < 1:
        b = int(input("请重新输入:"))
    if a == 1:
        if b == 1:
            print("平局")
        elif b == 2:
            print("你输了!!!")
        else:
            print("你太厉害了!!!")
    elif a == 2:
        if b == 1:
            print("你太厉害了!!!")
        elif b == 2:
            print("平局")
        else:
            print("你输了!!!")
    else:
        if b == 1:
            print("你输了!!!")
        elif b == 2:
            print("你太厉害了!!!")
        else:
            print("平局")
    print("继续游戏Y/y,退出游戏N/n")
    num = input("是否继续游戏(Y/N):")
    if num == 'N' or num == 'n':
        flag = False
    elif num == 'Y' or num == 'y': 
        continue
    else:
        num = input("""输入有误!!
                    请重新输入:""")
    

7.判断以下哪些不能作为标识符

    A、a
    B、¥a
    C、_12
    D、$a@12
    E、false
    F、False
答案:B、D

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

for i in range(50, 151):
    flag = True
    for j in range(2, i // 2 + 1):
        if i % j == 0:
            flag = False
            break
    if flag:
        print(f"{i}是质数")

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

for i in range(100, 1000):
    a = i // 100
    b = i % 100 // 10
    c = i % 10
    if i == a ** 3 + b ** 3 + c ** 3:
        print(i,"是水仙花数")

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

num = int(input("请输入一个大于9的整数:"))
num1 = num
sum = 0


while num <= 9:
    num = int(input("请重新输入一个大于9的整数:"))
    num1 = num
while num > 0:
    sum += num % 10
    num //= 10 
if (num1 - sum) % 9 == 0:
    print("验证成功!!!")

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

for i in range(10000, 100000):
    A = 10 * i + 7
    B = 100000 * 7 + i
    if B == 5*A:
        print(f"这个5位数是{i}")

12.小明今年18岁了,正常来说,应该在蛋糕上,插入18跟蜡烛,但是小明不是一般人,他是程序员
    他考虑到18的进制是10010,所以他在蛋糕上插入了五个蜡烛,点燃了其中两跟,问:
    如果用户输入年龄,请你安排插入的蜡烛数和点燃的蜡烛数
    
    输入:n     n>=1 n <=200
    输入x, y    x表示蜡烛总数量,y表示点燃的蜡烛数量
    案例1
    输入 18
    输出 5, 2

    案例2:
    输入 8
    输出 4    1

year = int(input("输入:"))
sum1 = 0
sum2 = 0


while year > 200 or year < 1:
    year = int(input("请输入正确年龄:"))
while year > 0:
    if year % 2 == 0:
        sum1 += 1
    else:
        sum2 += 1
    year //= 2
print(f"输出:{sum1 + sum2},{sum2}")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值