作业:
1.输出以下图形
#方法一
i = int(input('请输入图案输出行数:'))
p = 1
j = i
while p <= i:
print(' '*(p-1) + '*'*(j * 2 - 1) )
p += 1
j -= 1
#方法二
layer = int(input('请输入图案输出行数:'))
for i in range(layer,0,-1):
print(' '*(layer - i) + '*'*(2 * i - 1))
#方法一
layer = int(input('请输入图案输出行数(奇数):'))
p = 1
j = 1
if layer % 2 == 0:
while layer % 2 == 0:
layer = int(input('请输入图案输出行数(奇数):'))
while p <= layer/2:
print( ' '*(layer // 2 - p + 1) + '*'*(2 * p - 1))
p += 1
p = 0
while p <= layer:
print(' '*p + '*'*(layer - 2 * p) )
p += 1
j -= 1
#方法二
layer = int(input('请输入图案输出行数:'))
if layer % 2 == 0:
while layer % 2 == 0:
layer = int(input('请输入图案输出行数(奇数):'))
for i in range(1,(layer + 1) // 2):
print(' '*(layer - i) + '*'*(i * 2 - 1))
for i in range((layer + 1) // 2,0,-1):
print(' '*(layer - i) + '*'*(2 * i - 1))
#方法一
layer = int(input('请输入图案输出行数(奇数):'))
p = 1
j = 1
if layer % 2 == 0:
layer = int(input('请输入图案输出行数(奇数):'))
print(' '*(layer // 2 - p + 2) + '*')
while p <= layer//2:
print(' '*(layer // 2 - p + 1) + '*' + ' '*(2 * p - 1) + '*')
p += 1
p = 1
while p <= layer//2 - 1:
print(' '*(p+1) + '*' + ' '*(layer - 2 * p - 2) + '*')
p += 1
j -= 1
p = 1
print(' '*(layer // 2 - p + 2) + '*')
#方法二
layer = int(input('请输入图案输出行数:'))
if layer % 2 == 0:
while layer % 2 == 0:
layer = int(input('请输入图案输出行数(奇数):'))
for i in range(1,(layer+1)//2):
print(' ' * (layer - i),end='')
for j in range(2 * i -1):
if j == 0 or j == 2 * i - 2:
print('*',end='')
else:
print(' ',end='')
print()
for i in range((layer+1)//2,0,-1):
print(' ' * (layer - i),end='')
for j in range(2 * i -1):
if j == 0 or j == 2 * i - 2 :
print('*',end='')
else:
print(' ',end='')
print()
#方法一
layer = int(input('请输入图案输出行数(奇数):'))
p = 1
j = 1
if layer % 2 == 0:
layer = int(input('请输入图案输出行数(奇数):'))
print(' '*(layer // 2) + '*')
while p <= layer // 2 - 1:
print(' '*(layer // 2 - p) + '*' + ' '*(p - 1) +'*'+ ' '*(p - 1) + '*')
p += 1
print('*'*layer)
p = 1
while p <= layer // 2 - 1:
print(' '*p + '*' + ' '*(layer // 2 - 1 - p) + '*' + ' '*(layer // 2 - 1 - p) + '*')
p += 1
j -= 1
p = 1
print(' '*(layer // 2) + '*')
#方法二
layer = int(input('请输入图案输出行数:'))
if layer % 2 == 0:
while layer % 2 == 0:
layer = int(input('请输入图案输出行数(奇数):'))
for i in range(1, (layer // 2 + 2)):
for j in range(layer - i):
print(" ", end="")
for j in range(2 * i - 1):
if j == 0 or j == 2 * i - 2 or j == i - 1 or i == layer // 2 + 1:
print("*", end="")
else:
print(" ", end="")
print()
for i in range(layer // 2, 0, -1):
for j in range(layer - i):
print(" ", end="")
for j in range(2 * i - 1):
if j == 0 or j == 2 * i - 2 or j == i - 1:
print("*", end="")
else:
print(" ", end="")
print()
2.用户输入两个数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(a)
else:
print(b)
3.请输入一个数,判断这个数是偶数还是奇数,如果使用偶数,请判断从1到该数是3的倍数有哪些,如果是奇数,请判断从1到该数是5的倍数有哪些
num = int(input('请输入一个数:'))
if num % 2 == 0:
i = 1
while i <= num :
if i % 3 ==0 :
print('%s '%i, end='')
i += 1
else:
i = 1
while i <= num :
if i % 5 :
print('%s '%i, end='')
i += 1
4.某商店T恤的价格为35元/件(2件9折,3件以上8折),裤子的价格为120 元/条(2条以上9折).小明在该店买了3件T恤和2条裤子,请计算并显示小明应该付多少钱?
price_t = 35
price_k = 120
num_t = int(input('请输入购买T恤的数量:'))
num_k = int(input('请输入购买裤子的数量:'))
if num_t >= 3 :
if num_k >= 2 :
pay = price_t * num_t * 0.8 + price_k * num_k * 0.9
print('应支付%s'%pay)
else :
pay = price_t * num_t * 0.8 + price_k * num_k
print('应支付%s'%pay)
elif num_t == 2 :
if num_k >= 2 :
pay = price_t * num_t * 0.9 + price_k * num_k * 0.9
print('应支付%s'%pay)
else :
pay = price_t * num_t * 0.9 + price_k * num_k
print('应支付%s'%pay)
elif num_t < 2:
if num_k >= 2 :
pay = price_t * num_t + price_k * num_k * 0.9
print('应支付%s'%pay)
else :
pay = price_t * num_t + price_k * num_k
print('应支付%s'%pay)
5.鸡兔同笼,从上面看有35个头,从下面看有94只脚,请问鸡有几只,兔有几只?
#方法一
rabbit = 1
while rabbit <= 35 :
chicken = 1
while chicken <= 35:
if rabbit * 4 + chicken * 2 == 94 and rabbit +chicken == 35:
print('兔子有:%s , 鸡有:%s '%(rabbit,chicken))
chicken += 1
rabbit += 1
#方法二
head = int(input('请输入共有多少头鸡兔:'))
food = int(input('请输入共有多少脚:'))
rabbit = int((food - head * 2) / 2)
chicken = int(head - rabbit)
print('兔子有:%s , 鸡有:%s '%(rabbit,chicken))
6.猜拳游戏:石头、剪刀、布的游戏
my = input('请输入你的选择(剪刀、石头、布):')
#令剪刀 = 1 、石头 = 2 、布 = 3
if my == '剪刀' :
my = 1
elif my == '石头' :
my = 2
elif my == '布' :
my = 3
import random
i = random.randint(1,3)
if my == i :
print('平局')
if my == 1 :
if i == 2:
print('you=剪刀,电脑=石头')
print('你输了')
else:
print('you=剪刀,电脑=布')
print('你赢了')
if my == 2 :
if i == 1:
print('you=石头,电脑=剪刀')
print('你赢了')
else:
print('you=石头,电脑=布')
print('你输了')
if my == 3 :
if i == 1:
print('you=布,电脑=剪刀')
print('你输了')
else:
print('you=布,电脑=石头')
print('你赢了')
7.判断以下哪些不能作为标识符()
A、a
B、¥a
C、_12
D、$a@12
E、false
F、False
答案:B、D、E、F
8.求50~150之间的质数是那些?
for i in range(50,151):
for j in range(2,i):
if i % j == 0:
break
# 整体取余结束后输出结果
else:
print(i,end=" ")
#判断是质数还是合数
num =int(input('请输入一个大于1的自然数:'))
for j in range(2,num // 2 + 1):
flag = True
if num % j == 0:
flag = False
break
if flag:
print(f'{num}是质数')
else:
print(f'{num}是合数')
9.打印输出标准水仙花数,输出这些水仙花数
num = 100
while num >= 100 and num < 1000:
a = num // 100 # a得到百位的
b = (num // 10) % 10 # b得到十位的
c = num % 10 # c得到个位的
if num == a ** 3 + b ** 3 + c ** 3:
print(num,end=' ')
num += 1
10.验证:任意一个大于9的整数减去它的各位数字之和所得的差,一定能被9整除.
#方法一
num = int(input('请输入一个大于9的整数:'))
if num < 9:
print('输入错误')
else:
a = 0
num = 0
while num != 0:
a += num % 10
num //= 10
if (num-a) % 9 == 0:
print('ture')
#方法二
num = int(input('请输入一个大于9的整数:'))
num2 = str(num)
count = 0
for i in num2:
count += int(i)
if (num - count) % 9 == 0:
print('ture')
11.一个五位数,若在它的后面写上一个7,得到一个六位数A,若在它前面写上一个7,得到一个六位数B,B是A的五倍,求此五位数.
i = 10000
while i < 100000:
A = (i * 10) + 7
B = i + 700000
if B / A == 5:
print(i)
i += 1