Python练习题

本文介绍了Python编程中的基础概念,包括使用循环结构打印不同图案、判断质数、模拟商品购买过程、处理整除运算、查找四位数的最大最小值以及实现猜数字和猜拳游戏等练习。
摘要由CSDN通过智能技术生成

作业1:请使用循环打印如下图案:
    

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

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


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

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

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


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

代码: 

#第一个图案
a = 5     
n = 1      #控制行数
while n <= a:
  j = 1    #控制每行输出的*个数
  while j <= n :
    print("*",end="")
    j += 1
  print()
  n += 1
print('''
  ''')
#第二个图案
a = 9     
n = 1      #控制行数
while n <= a:
  j = 1    #控制每行输出的*个数
  while j <= n :
    print("*",end="")
    j += 1
  print()
  n += 2
print('''
  
  ''')
#第三个图案
a = 5     
n = 1
k = 5       
while n <= a:
  j = 1
  k -= 1
  i = 1
  while j <= k :
    print(" ",end="")
    j += 1
  while i <= n :
    print("*",end="")
    i += 1
  print()
  n += 1
print('''
  ''')
#第四个图案
a = 7     
n = 1
k = 5       
while n <= a:
  j = 1
  k -= 1
  i = 1
  while j < k :
    print(" ",end="")
    j += 1
  while i <= n :
    print("*",end="")
    i += 1
  print()
  n += 2
print('''
  ''')
#第五个图案
a = 9     
n = 1
k = 7       
while n <= a:
  j = 1
  i = 1
  while i < n :
    print(" ",end="")
    i += 2
 
  while j <= k :
    print("*",end="")
    j += 1
  print()
  k -= 2
  n += 2
print('''
  ''')
#第六个图案
a = 6     
n = 1
k = 5       
while n <= a:
  j = 1
  k -= 1
  i = 1
  while j < k :
    print(" ",end="")
    j += 1
  while i <= n :
    print("*",end="")
    i += 1
  print()
  n += 2
a = 9     
n = 1
k = 7       
while n <= a:
  j = 1
  i = 1
  while i < n :
    print(" ",end="")
    i += 2
 
  while j <= k :
    print("*",end="")
    j += 1
  print()
  k -= 2
  n += 2
print('''
  ''')

结果: 

作业2:判断一个数是否是质数(素数)

代码:

num = int(input("请输入一个数字: "))
if num > 1:
   for i in range(2,num):
       if (num % i) == 0:
           print(num,"不是质数")
           print(i,"乘于",num//i,"是",num)
           break
   else:
       print(num,"是质数")
else:
   print("你是猴子请来的救兵吧!!")

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

代码:    

print("""                    英雄商城英雄列表
~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~
编号  姓名     昵称     价格  库存  描述
1     纳尔   迷失之牙  3500  100  丛林不会原谅盲目与无知
2     锐雯   放逐之刃  4000  100  她是残忍高效的战士  
3     薇恩   暗夜猎手  3500  100  这个世界不想人们想象的那么美好
4     扎克   生化魔人  3000  100  即使你没有脊柱,你也必须站起来
5     杰斯  未来守护者 2500  100  武装着睿智与魅力,你的选择没有错
~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~""")
a = int(input("(温馨提示)请输入您要购买的英雄编号:"))
b = 100
c = 0
name = 0
if a == 1:
  print("纳尔 价格:3500 折扣9.5  ")
  c = 3500 *0.95
  name = '纳尔'
if a == 2:
  print("锐雯 价格:4000 折扣7.5  ")
  c = 4000 *0.75
  name = '锐雯'
if a == 3:
  print("薇恩 价格:3000 折扣8.5  ")
  c = 3000 *0.85
  name = '薇恩'
if a == 4:
  print("扎克 价格:3000 折扣9.5  ")
  c = 3000 *0.95
  name = '扎克'
if a == 5:
  print("杰斯 价格:2500 折扣6.5  ")
  c = 2500 *0.65
  name = '杰斯'
d = int(input("输入购买数量(注意库存!):"))
while d > b:
  print("error,您买多了,库存不足")
  d = int(input("请重新输入购买数量(注意库存!):"))
print ("亲,请付款哦~")
e = int(input ("请输入付款金额:"))
while e < c*d:
  print("error,您给的钱少了")
  e = int(input("请重新输入付款金额:"))
print("       这是您的小票,请收好!")
print(f"""      购买的英雄:  {name} 
      购买数量:{d}
      付款金额:{c*d} 
      找您零钱{e-c*d}""")

结果: 

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

分析:

根据题目描述,所得的一个数应为:X36Y,并且能被3和2同时整除,因此XY能被6整除,及求能被6整除的最小两位数和最大两位数

# 初始化最小和最大两位数变量
min_number = 10
max_number = 99

# 使用for循环找出能被6整除的最小两位数
for number in range(min_number, max_number + 1):
    if number % 6 == 0:
        break

# 输出最小的能被6整除的两位数
print(f"能被6整除的最小两位数是:{number}")

# 使用for循环倒序找出能被6整除的最大两位数
for number in range(max_number, min_number - 1, -1):
    if number % 6 == 0:
        break

# 输出最大的能被6整除的两位数
print(f"能被6整除的最大两位数是:{number}")

结果: 

因此,最小的是1362,最大的是9366

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

import random

num = str(random.randint(9,999999999))
count = 0
for i in range(len(num)):
    count += int(num[i])
if (int(num)-count) % 9 == 0:
    print("是")
else:
    print("否")

 作业5:编程求一个四位自然数ABCD,它乘以A后变成DCBA

for i in range(1000,9999):
    if int(str(i)[0]) * i == int(str(i)[3] + str(i)[2] + str(i)[1] + str(i)[0]):
        print(i)

结果:

 

 作业6:用户输入两个数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)

结果: 

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

num =int(input())
if num % 2 == 0:
    print("偶数")
    for i in range(1,4):
        if num % i == 0:
            print(i)
else:
    print("奇数")
    for i in range(1,5):
        if num % i == 0:
            print(i)

结果: 

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

t_shirt = 35
trousers = 120
count = 0
def money(num1,num2): 
    if 3 > num1 >= 2:
        count = 0.9* t_shirt
    else:
        count = 0.8* t_shirt
    if num2 >= 2:
        count += 0.9* trousers
    return count
print(money(3,2))

结果:136.0

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

import random 

compute = random.randint(0, 100)
while True:
    my = int(input("请输入一个0~100的整数:"))

    if my > compute:
        print("对不起,您猜大了")
    elif my < compute:
        print("对不起,您猜小了")
    else:
        print("恭喜您,猜对了,撒花~~~~~")
        choice = input("请是否继续猜(Y/y),其他任意符号退出:")
        if choice == "Y" or choice == "y":
            compute = random.randint(0, 100)
        else:
            print("see you~")
            break

作业10:猜拳游戏:石头、剪刀、布的游戏

import random as r

compute = r.randint(0, 3)
while True:
    my = int(input("请输入您要出的拳(0:剪刀,1:石头,2:布)"))

    if my == 0 and compute == 0 or my == 1 and compute == 1 or my == 2 and compute == 2:
        print("平局")
        choice = input("请是否继续猜(Y/y),其他任意符号退出:")
        if choice == "Y" or choice == "y":
            compute = r.randint(0, 3)
        else:
            print("see you")
            break
    elif my == 0 and compute == 1:
        print("对不起,您输了")
        choice = input("请是否继续猜(Y/y),其他任意符号退出:")
        if choice == "Y" or choice == "y":
            compute = r.randint(0, 3)
        else:
            print("see you")
            break
    elif my == 0 and compute == 2:
        print("恭喜,您赢了")
        choice = input("请是否继续猜(Y/y),其他任意符号退出:")
        if choice == "Y" or choice == "y":
            compute = r.randint(0, 3)
        else:
            print("see you")
            break
    elif my == 1 and compute == 0:
        print("恭喜,您赢了")
        choice = input("请是否继续猜(Y/y),其他任意符号退出:")
        if choice == "Y" or choice == "y":
            compute = r.randint(0, 3)
        else:
            print("see you")
            break
    elif my == 1 and compute == 2:
        print("对不起,您输了")
        choice = input("请是否继续猜(Y/y),其他任意符号退出:")
        if choice == "Y" or choice == "y":
            compute = r.randint(0, 3)
        else:
            print("see you")
            break
    elif my == 2 and compute == 0:
        print("对不起,您输了")
        choice = input("请是否继续猜(Y/y),其他任意符号退出:")
        if choice == "Y" or choice == "y":
            compute = r.randint(0, 3)
        else:
            print("see you")
            break
    elif my == 2 and compute == 1:
        print("恭喜,您赢了")
        choice = input("请是否继续猜(Y/y),其他任意符号退出:")
        if choice == "Y" or choice == "y":
            compute = r.randint(0, 3)
        else:
            print("see you")
            break

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

溢彩风华

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值