9.30 day5 提高作业

1.控制台输入年龄,根据年龄输出不同的提示(例如:老年人,青壮年,成年人,未成年,儿童)

age = int(input('请输入你的年龄:'))
while True:
    if  age <= 0:
        print('小不点')
        age = int(input('请输入你的年龄:'))
    elif age <= 12:
        print('小屁孩儿')
        age = int(input('请输入你的年龄:'))
    elif age <= 22:
        print('读书郎')
        age = int(input('请输入你的年龄:'))
    elif age <= 59:
        print('打工仔')
        age = int(input('请输入你的年龄:'))   
    else:
        print('老顽童')
        age = int(input('请输入你的年龄:'))
#输出结果:
请输入你的年龄:0
小不点
请输入你的年龄:12
小屁孩儿
请输入你的年龄:22
读书郎
请输入你的年龄:59
打工仔
请输入你的年龄:60
老顽童
请输入你的年龄:

2.计算5的阶乘 5!的结果是

n = 1
for x in range(1,6):
    n *= x
print(n)
#输出结果: 120 

3.求1+2!+3!+...+20!的和 1.程序分析:此程序只是把累加变成了累乘。

n1 = 1
n2 = 2
n3 = 0
while n2<=21:
    n1 = 1
    for x in range(1,n2):
        n1=x*n1
    n2+=1
    n3+=n1
print(n3)
#  结果为 :2561327494111820313

4.计算 1+1/2!+1/3!+1/4!+...1/20!=?

n1 = 1
n2 = 2
n3 = 0
while n2<=21:
    n1 = 1
    for x in range(1,n2):
        n1=1/x*n1
    n2+=1
    n3+=n1
print(n3)   #1.7182818284590455

5.循环输入大于0的数字进行累加,直到输入的数字为0,就结束循环,并最后输出累加的结果。

n=int(input("请输入一个整数:"))
n1=0
while n!=0:
    n1+=n
    n=int(input())
print('输入的整数和为:',n1)
#输入100 200 300 0 结果:输入的数和为: 600
#依托于下题在网上查找的办法进行的修改
n = int(input('请输入一个数:'))
ret = []
while True:
    if n != 0:
        ret.append(n)
        print('你输入的数和为:',sum(ret))#这条可以不用打
        n = int(input('请输入一个数:'))
    else:
        print('你输入的数和为:',sum(ret))
        break
请输入一个数:100
你输入的数和为: 100
请输入一个数:200
你输入的数和为: 300
请输入一个数:300
你输入的数和为: 600
请输入一个数:0
你输入的数和为: 600


6.求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。 1.程序分析:关键是计算出每一项的值。

#网上查询到的方法:
n = int(input('请输入要循环的数字:'))
count = int(input('请输入要循环的次数:')) 
n1 = 0 #初始化最终求解
for x in range(1,count+1): #循环次数与输入的值一样,但从1开始循环
    n2 = 0  #临时用的变量
    for y in range(0,x):
        n2 = n2 + 10**y #先计算 10**0 + 10**1 + ... + 10**x
    n1 = n1 + (n*n2) #再计算 n * x
print(n1)

请输入要循环的数字:3
请输入要循环的次数:3
369

#网上查询到的方法2:注释是我自己猜的 -。-!
a=input('输入数字>>>')
count=int(input('几个数字相加>>>'))
ret=[] # 创建一个空的列表,方便添加内容
for i in range(1,count+1):
    ret.append(int(a*i)) #append:在列表的最后添加一个元素(),a*i表示重复打印i次a 
    print(ret[i-1])
print(sum(ret))#sum() 方法对系列进行求和计算。(这条摘自百度答案)

输入数字>>>3
几个数字相加>>>3
3
33
333
369

7.输入三个整数x,y,z,请把这三个数由小到大输出

x = int(input('请输入x的值:'))
y = int(input('请输入y的值:'))
z = int(input('请输入z的值:'))
if  x > y > z:
    print(z,y,x)
elif x > z > y:
    print(y,z,x)
elif y > x > z:
    print(z,x,y)
elif y > z > x:
    print(x,z,y)
elif z > x > y:
    print(y,x,z)
else:
    print(x,y,z)

请输入x的值:100
请输入y的值:101
请输入z的值:89
89 100 101

8.控制台输出三角形

a.根据n的值的不同,输出相应的形状 
n = int(input('请输入一个数:'))
count = 0
n1 = n
while count<=n:                                                    
    for x in range(0,n):
        x+=1
        n1-=1
        if x < n:
            print('*'*(n1+1))
            count+=1
        else:
            print('*')
            n = int(input('请输入一个数:'))
            count = 0
            n1 = n
请输入一个数:8
********
*******
******
*****
****
***
**
*
b.根据n的值的不同,输出相应的形状(n为奇数)
n = int(input('请输入一个奇数:'))
count = 0
n1=(n-1)/2+1
while count<=n:
    for x in (0,n):
        x += 1
        count+=1    
        if x%2 !=0:
            n1-=1
            print(' '*int(n1),'*'*count)
请输入一个奇数:11
      *
     ***
    *****
   *******
  *********
 ***********    

9.输出9*9口诀。 1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。


14217092-1cace41221edee99.jpg
for i in range(1,10):
    for j in range(1,i+1):
        print('%d'%(j),'X','%d'%(i),'=','%d'%(i*j), end = '  ')
    else:
        print()

1 X 1 = 1  
1 X 2 = 2  2 X 2 = 4  
1 X 3 = 3  2 X 3 = 6  3 X 3 = 9  
1 X 4 = 4  2 X 4 = 8  3 X 4 = 12  4 X 4 = 16  
1 X 5 = 5  2 X 5 = 10  3 X 5 = 15  4 X 5 = 20  5 X 5 = 25  
1 X 6 = 6  2 X 6 = 12  3 X 6 = 18  4 X 6 = 24  5 X 6 = 30  6 X 6 = 36  
1 X 7 = 7  2 X 7 = 14  3 X 7 = 21  4 X 7 = 28  5 X 7 = 35  6 X 7 = 42  7 X 7 = 49  
1 X 8 = 8  2 X 8 = 16  3 X 8 = 24  4 X 8 = 32  5 X 8 = 40  6 X 8 = 48  7 X 8 = 56  8 X 8 = 64  
1 X 9 = 9  2 X 9 = 18  3 X 9 = 27  4 X 9 = 36  5 X 9 = 45  6 X 9 = 54  7 X 9 = 63  8 X 9 = 72  9 X 9 = 81  
>>> 

10.这是经典的"百马百担"问题,有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?

#.网上查的解题思路并做的修改
zs = int(input('请输入马匹的总数:'))
for dm in range(0,int(zs/3+1)):
    for zm in range(0,int(zs/2+1)):
        for xm in range(0,int(zs+1),2):
            if dm + zm + xm == zs and 3*dm + 2*zm + int(0.5*xm) == zs:
                print('大马有%d匹,中马有%d匹,小马有%d匹'%(dm,zm,xm))
请输入马匹的总数:100
大马有2匹,中马有30匹,小马有68匹
大马有5匹,中马有25匹,小马有70匹
大马有8匹,中马有20匹,小马有72匹
大马有11匹,中马有15匹,小马有74匹
大马有14匹,中马有10匹,小马有76匹
大马有17匹,中马有5匹,小马有78匹
大马有20匹,中马有0匹,小马有80匹

11.我国古代数学家张邱建在《算经》中出了一道“百钱买百鸡”的问题,题意是这样的: 5文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱可以买3只雏鸡。现在用100文钱买100只鸡,那么各有公鸡、母鸡、雏鸡多少只?请编写程序实现。

qzs = int(input('请输入钱总数:'))
jzs = int(input('请输入鸡总数:'))
for gj in range(0,int(jzs/2+1)):
    for mj in range(0,int(jzs/3+1)):
        for cj in range(0,3*jzs+1,3):
            if gj + mj + cj == jzs and 5*gj+3*mj +1/3*cj==qzs:
                print('公鸡有%d只,母鸡有%d只,雏鸡有%d只'%(gj,mj,cj))

请输入钱数:100
请输入鸡总数:100
公鸡有0只,母鸡有25只,雏鸡有75只
公鸡有4只,母鸡有18只,雏鸡有78只
公鸡有8只,母鸡有11只,雏鸡有81只
公鸡有12只,母鸡有4只,雏鸡有84只
>>> 

12.小明单位发了100元的购物卡,小明到超市买三类洗化用品,洗发水(15元),香皂(2元),牙刷(5元)。要把100元整好花掉,可如有哪些购买结合?

count = 0
money = int(input('请输入钱数:'))
for xfs in range(0,int(money/15+1)):
    for ys in range(0,int(money/5+1)):
        for xz in range(0,int(money/2+1),5):
            if xfs*15 + ys*5 + xz*2 == money:
                print('洗发水为%d瓶时,牙刷有%d块,香皂有%d块'%(xfs,ys,xz))
                count+=1
print('一共有',count,'种方案')



请输入钱数:100
洗发水为0瓶时,牙刷有0块,香皂有50块
洗发水为0瓶时,牙刷有2块,香皂有45块
洗发水为0瓶时,牙刷有4块,香皂有40块
洗发水为0瓶时,牙刷有6块,香皂有35块
洗发水为0瓶时,牙刷有8块,香皂有30块
洗发水为0瓶时,牙刷有10块,香皂有25块
洗发水为0瓶时,牙刷有12块,香皂有20块
洗发水为0瓶时,牙刷有14块,香皂有15块
洗发水为0瓶时,牙刷有16块,香皂有10块
洗发水为0瓶时,牙刷有18块,香皂有5块
洗发水为0瓶时,牙刷有20块,香皂有0块
洗发水为1瓶时,牙刷有1块,香皂有40块
洗发水为1瓶时,牙刷有3块,香皂有35块
洗发水为1瓶时,牙刷有5块,香皂有30块
洗发水为1瓶时,牙刷有7块,香皂有25块
洗发水为1瓶时,牙刷有9块,香皂有20块
洗发水为1瓶时,牙刷有11块,香皂有15块
洗发水为1瓶时,牙刷有13块,香皂有10块
洗发水为1瓶时,牙刷有15块,香皂有5块
洗发水为1瓶时,牙刷有17块,香皂有0块
洗发水为2瓶时,牙刷有0块,香皂有35块
洗发水为2瓶时,牙刷有2块,香皂有30块
洗发水为2瓶时,牙刷有4块,香皂有25块
洗发水为2瓶时,牙刷有6块,香皂有20块
洗发水为2瓶时,牙刷有8块,香皂有15块
洗发水为2瓶时,牙刷有10块,香皂有10块
洗发水为2瓶时,牙刷有12块,香皂有5块
洗发水为2瓶时,牙刷有14块,香皂有0块
洗发水为3瓶时,牙刷有1块,香皂有25块
洗发水为3瓶时,牙刷有3块,香皂有20块
洗发水为3瓶时,牙刷有5块,香皂有15块
洗发水为3瓶时,牙刷有7块,香皂有10块
洗发水为3瓶时,牙刷有9块,香皂有5块
洗发水为3瓶时,牙刷有11块,香皂有0块
洗发水为4瓶时,牙刷有0块,香皂有20块
洗发水为4瓶时,牙刷有2块,香皂有15块
洗发水为4瓶时,牙刷有4块,香皂有10块
洗发水为4瓶时,牙刷有6块,香皂有5块
洗发水为4瓶时,牙刷有8块,香皂有0块
洗发水为5瓶时,牙刷有1块,香皂有10块
洗发水为5瓶时,牙刷有3块,香皂有5块
洗发水为5瓶时,牙刷有5块,香皂有0块
洗发水为6瓶时,牙刷有0块,香皂有5块
洗发水为6瓶时,牙刷有2块,香皂有0块
一共有 44 种方案
>>> 

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,258评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,335评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,225评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,126评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,140评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,098评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,018评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,857评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,298评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,518评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,400评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,993评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,638评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,661评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352

推荐阅读更多精彩内容