python练习4

在控制台上输入以下案列:

1,

layer=int(input("请输入打印层数:"))
#定义循环变量
i=1
#进入循环
while i<2*layer:
    print("*"*i)
    i+=2
请输入打印层数:7
*
***
*****
*******
*********
***********
*************

2,

layer=int(input("请输入打印层数:"))
#定义循环变量
i=1
#进入循环
while i<=layer:
    #先打印空格,去除换行
    print(" "*(layer-i),end='')
    #接着空格后面打印*
    print("*"*i)
    i+=1
请输入打印层数:6
     *
    **
   ***
  ****
 *****
******

3,

layer = int ( input ( "请输入打印层数:" ) )
#定义决定空格数量的变量
j=1
#通过循环输出图案,第一行打印1个*,后面每行加两个
for i in range(1,2*layer,2) :
    #每行先打印空格,数量随行递减,每次减一
    print(" " * (layer - j) , end='')
    j+=1
    print("*" * i)
请输入打印层数:6
     *
    ***
   *****
  *******
 *********
***********

4,

layer = int ( input ( "请输入打印层数:" ) )
#定义决定空格数量的变量
j=0
#通过循环输出图案,第一行打印2*layer-1个*,后面每行减两个
for i in range(2*layer-1 , 0 , -2) :
    #每行先打印空格,数量随行递增,每次加一
    print(" " * j , end='')
    j+=1
    print("*" * i)
请输入打印层数:7
*************
 ***********
  *********
   *******
    *****
     ***
      *

5,

layer = int ( input ( "请输入打印层数:" ) )
#定义决定递减空格数量的变量
j=1
if layer % 2 == 0 :
    temp1=layer // 2
else :
    temp1=layer // 2 + 1
temp2=layer - temp1
#通过循环输出前面几行图案,第一行打印1个*,后面每行加两个
for i in range(1 , 2 * temp1 , 2) :
    #每行先打印空格,数量随行递减,每次减一
    print(" " * (temp1 - j) , end='')
    j+=1
    print("*" * i)
#定义决定递增空格数量的变量
if layer % 2 == 0 :
    y=0
else :
    y=1
#通过循环输出后面图案,第一行打印2 * temp2 - 1个*,后面每行减两个
for x in range(2 * temp2 - 1 , 0 , -2) :
    #每行先打印空格,数量随行递增,每次加一
    print(" " * y , end='')
    y+=1
    print("*" * x)
请输入打印层数:13
      *
     ***
    *****
   *******
  *********
 ***********
*************
 ***********
  *********
   *******
    *****
     ***
      *

7,


layer = int ( input ( "请输入打印层数:" ) )
#将图案拆分为两部分,temp1为上部分;temp2为下部分
if layer % 2 == 0 :
   temp1 = layer // 2
else :
   temp1 = layer // 2 + 1
temp2 = layer - temp1
#定义图案中间的空格个数
j=1
#使用循环
while temp1 > 0 :
   #每行前面部分图案
   print(" " * (temp1-1) , end = "*")
   temp1-=1
   #第一行只需要一个*
   if temp1 == layer - temp2 - 1 :
       print()
       continue
   #每行后面部分图案
   print(" " * j , end = "*\n")
   j+=2
#判断行数为奇数还是偶数,决定后半部分第一行开始是否需要空格
if layer % 2 == 0 :
   num = 0
else :
   num = 1
#定义每行中间的空格数+2
y = temp2 *2-1
#循环
for x in range(num , temp2+1 , 1) :
   #前半部分图案
   print(" " * x , end = "*")
   #后半部分图案所需空白数量递减
   y-=2
   #判断当层数为偶数时最后一层的位置,到最后一行结束循环
   if num == 0 and x == (temp2 - 1) :
       break
   #同上,判断当层数为偶数时
   if x == temp2 and num == 1 :
       break
   #后半部分图案打印
   print(" " * y , end = "*\n")
   
请输入打印层数:13
      *
     * *
    *   *
   *     *
  *       *
 *         *
*           *
 *         *
  *       *
   *     *
    *   *
     * *
      *
layer = int(input("请输入层数:"))
#将图案分为三份
if layer % 2 == 0 :
   temp = layer // 2 - 1
else :
   temp = layer // 2
#定义第一部分层数的循环变量
i = 0
#决定图案中间空格个数
y=-1
while i < temp :
   #空格
   for j in range(temp-i , 0 , -1) :
       print(" " , end = '')
   #图案
   for x in range(0 , 2 * i + 1) :
       #判断是否是第一和二层,一二层由*组成,后面的由*和y* 组成
       if i == 0 or i == 1 :
           print("*" , end = '')
       elif x < 3 :
           print("*"+" "*y , end = '')      
   i+=1
   y+=1
   print()
#第二部分,全由*组成
if layer % 2 == 0 :
   print("*" * (temp*2+1) )
   print("*" * (temp*2+1) )
else :
   print("*" * (temp*2+1) )
#第三部分,与第一部分相反
z=temp - 3#?
for num in range(0 , temp) :
   for num1 in range(0 , num+1) :
       print(" " , end = '')
   for num2 in range((temp-num)*2-1 , 0 , -1) :
       if num == temp-1 or num == temp-2 :
           print("*" , end = '')
       elif num2<=3  :#?
           print("*" , " "*z , end = '')
   z-=1
   print()
请输入层数:13
      *
     ***
    * * *
   *  *  *
  *   *   *
 *    *    *
*************
 *    *    *
  *   *   *
   *  *  *
    * * *
     ***
      *

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

#用户输入两个数a、b。如果a能被b整除或a加b大于1000,则输出a;否则输出b。
a=int(input("请输入第一个数字:"))
b=int(input("请输入第二个数字:"))
if a%b==0 or a+b>100 :
    print(a)
else :
    print(b)

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

num=int(input("请输入一个数:"))
if num%2==0 :
    print(num,"是偶数,1到该数是3的倍数有:")
    for i in range(1,num+1) :
        if i%3==0 :
            print(i,end=" ")
else :
    print(num,"是奇数,1到该数是5的倍数有:")
    for i in range(1,num+1) :
        if i%5==0 :
            print(i,end=" ")

运行结果:

100 是偶数,1到该数是3的倍数有:
3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 63 66 69 72 75 78 81 84 87 90 93
96 99

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

num1=int(input("请输入你购买该T恤的件数:"))
num2=int(input("请输入你购买该裤子的件数:"))
if num1<2 :
    a=1
elif num1==2 :
    a=0.9
elif num1>2 :
    a=0.8
if num2>=2 :
    b=0.9
print("请付款:",num1*a+num2*b,"元")

运行结果:

请输入你购买该T恤的件数:3
请输入你购买该裤子的件数:2
请付款: 4.2 元

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

num1=int(input("请输入头的个数:"))
num2=int(input("请输入脚的只数:"))
print("兔子的个数为:",(num2-(num1*2))//2)
print("鸡的个数为:",num1-(num2-(num1*2))//2)

运行结果:

请输入头的个数:35
请输入脚的只数:94
兔子的个数为: 12
鸡的个数为: 23

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

import random
usernum=int(input("请选择:剪刀(输入1)、石头(输入2)或者布(输入3):"))
num=random.randint(1,3)
if num==1:
   print("计算机出的是剪刀")
elif num==2:
   print("计算机出的是石头")
elif num==3:
   print("计算机出的是布")

if usernum==1:
    print("你出的是剪刀")
if usernum==2:
    print("你出的是石头")
if usernum==3:
    print("你出的是布")

if usernum==num :
    print("平局!")
elif usernum-num ==1 or usernum-num==-2:
    print("恭喜你,你赢了")
elif num-usernum==1 or num-usernum==-2:
    print("不好意思,你输了")

运行结果:

请选择:剪刀(输入1)、石头(输入2)或者布(输入3):3
计算机出的是剪刀
你出的是布
不好意思,你输了

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

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

B、¥a:标识符不能以特殊字符开头,只能以字母(大小写均可)或下划线开头。

D、$a@12:标识符不能包含特殊字符(除了下划线和美元符号),也不能包含空格或其他非法字符。

E、false、F、False:这些是保留字,不能用作标识符。

所以正确答案是 B、D、E、F。

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


for num in range(50, 151):
    flag = True
    for i in range(2, num // 2 + 1):
        if num % i == 0:
            flag = False
            break
    if flag:
        print(num)

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

for i in range(100, 1000):
    # abc  = a ^ 3 + b ^ 3 + c ^ 3
    # 123
    a = i // 100
    b = i % 100 // 10
    c = i % 10
    if a ** 3 + b * b * b + c ** 3 == i:
        print(i, end=" ")

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

num = int(input("请输入一个大于9的整数:"))
 count = 0
src_num = num
while num > 0:
    count += num % 10
    num //= 10

if (src_num - count) % 9 == 0:
    print("验证通过") 

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

for i in range(10000,100000):
    a=i*10+7
    b=700000+i
    if b==a*5 :
        print(i)
14285

小明今年18岁了,正常来说,应该在蛋糕上,插入18跟蜡烛,但是小明不是一般人,他是程序员,他考虑到18的进制是10010,所以他在蛋糕上插入了五个蜡烛,点燃了其中两跟,问:如果用户输入年龄,请你安排插入的蜡烛数和点燃的蜡烛数

输入:n	 n>=1 n <=200
输入x, y	x表示蜡烛总数量,y表示点燃的蜡烛数量
案例1
输入 18
输出 5, 2

案例2:
输入 8
输出 4	1
num=int(input("请输入年龄:"))
b=""
while num!=0 :
    a=num%2
    b +=str(num%2)
    num=num//2
  
c=list(b)
c.reverse()
print("插入的蜡烛总数为",len(c))
m=0
for i in range(0,len(c)):
    if c[i]=="1" :
        m+=1
print("点燃的蜡烛总数为",m)

运行结果:

请输入年龄:18
插入的蜡烛总数为 5
点燃的蜡烛总数为 2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值