2018-09-29循环和选择(if,for,while)提高题

提高题:

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

age = int(input('请输入年龄0~100内'))

while True:
    if 0 <= age <= 100:
        break
    else:
        age = int(input('请输入年龄0~100内'))

if age <= 12:
    print('儿童')
elif age <= 18:
    print('未成年')
elif age <= 25:
    print('成年人')
elif age <= 50:
    print('青壮年')
else:
    print('老年人')
结果

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

num = 1

for x in range(1,6):
    num *= x    

print('%d! = %d' % (x,num) )
结果

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

sum1 = 0

for i in range(1,21):
    temp = 1 
    for j in range(1,i+1):
        temp *= j
    sum1 += temp
print(sum1)
结果

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

sum1 = 0

for i in range(1,21):
    denominator = 1
    for j in range(1,i+1):
        denominator *= j
    sum1 += 1/denominator

print(sum1)
结果

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

sum1 = 0

n = int(input('请输入一个大于0的数,输入0结束输入'))

while True:
    if n != 0 & str(n).isdigit():
        sum1 += n
        n = int(input('请继续输入需要求和的数,输入0结束输入'))
    else:
        break

print('结果为:%d'% (sum1))
结果

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

sum1 = 0
n = int(input('请输入一个数,作为循环次数'))
m = int(input('请输入一个数(对a求和)'))

for i in range(1,n+1):
    temp = ''
    for j in range(1,i+1):
        temp += str(m)
    if i == n:
        print('%s' % (temp), end = '')  
    else:
        print('%s' % (temp), end = '+') 
    sum1 += int(temp)

print(' = %d'% (sum1))
结果

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

x = int(input('请输入一个整数'))
y = int(input('请再输入一个整数'))
z = int(input('请再再输入一个整数'))
max1 = x 

if y > max1:
    max1 = y
if z > max1:
    max1 = z

print('max = %d' % (max1))
结果

8.控制台输出三角形

a.根据n的值的不同,输出相应的形

 n = 5时             n = 4
  *****               ****
  ****                ***
  ***                 **
  **                  *
  *
 解:a题

row = int(input('请输入一个大于0数'))

while row > 0:
    c = 1
    while c <= row:
        print('*',end="")
        c += 1
    print('')

    row -= 1
结果
b.根据n的值的不同,输出相应的形状(n为奇数)
 n = 5               n = 7
   *                    *
  ***                  ***
 *****                *****
                     *******
n = int(input('请输入一个大于0的奇数'))
row = int(n/2)+1
for x in range(1,row+1):
    print((row - x)*' ' + (2*x-1)*'*')
结果

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

for i in range(1,10):
    for j in range(1,i+1):
        print('%d*%d=%d' % (i,j,i*j),end=" ")
    print('')


结果

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

方法一:
for x in range(1,33):
    for y in range(1,50):
        z = 100 - x - y
        if z % 2 == 0 and 3*x + 2*y + 1/2*z == 100:
            print('大马:%d 中马:%d 小马:%d' % (x,y,z))

方法二:
x = 1
y = 1

while x < 33:

    y = 1

    while y < 50:

        z = 100 - x -y

        if z % 2 == 0 and 3*x + 2*y + 1/2*z == 100:

            print('大马:%d 中马:%d 小马:%d' % (x,y,z))
        
        y += 1

    x += 1
结果

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

方法一:
for x in range(1,20):
    for y in range(1,33):
        z = 100 - x - y
        if z % 3 == 0 and x*5 + y*3 + 1/3*z == 100:
            print('公鸡:%d 母鸡:%d 小鸡:%d' % (x,y,z))
方法二:
x = 1       #大
y = 1       #中

while x <= 20:
    y = 1
    while y <= 33:
        z = 100 - x - y
        if z % 3 == 0 and x*5 + y*3 + 1/3*z == 100:
            print('公鸡:%d 母鸡:%d 小鸡:%d' % (x,y,z))
        y += 1
    x += 1
结果

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

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

推荐阅读更多精彩内容