2018-08-24 day-5

作业

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

age=input('请输入年龄:')
if age>=60:
    print('老年人')
elif age>=45:
    print('青壮年')
elif age>=18:
    print('成年人')
elif age<18:
    print('未成年')
else:
    print('儿童')

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

sum=1
for x in range(1,6):
    sum=x*sum
print('5的阶乘 5!的结果是%d'%(sum))
# 输出结果
# 5的阶乘 5!的结果是120

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

lc=1
lch=0
for a in range(1,21):
    lc*=a
    print(lc)
    lch+=lc
print(lch)
# 输出结果
# 2561327494111820313

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

sum1=1
sum1h=0
for b in range(1,21):
    sum1*=(1/b)
    print(sum1)
    sum1h+=sum1
print(sum1h)
# 输出结果
# 1.7182818284590455

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

sum=0
while True:
    # a=float(input('请输入一个大于等于0的数:'))
    if a>0:
        sum+=a
        continue
    else:
        break
print(sum)

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

a=int(input('请输入一个数字:'))
c=int(input('请输入有几个数相加:'))
s=0
m=0
for d in range(1,c+1):
    m+=a*10**(d-1)
    s+=m
print(s)

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

x=int(input('请输入一个整数:'))
y=int(input('请输入一个整数:'))
z=int(input('请输入一个整数:'))
list=[x,y,z]
list.sort()
for a in list:
    print(a)
2018-08-24 day-5_第1张图片
输出结果

8.控制台输出三角形

a.根据n的值的不同,输出相应的形状
n = 5时             n = 4
*****               ****
****                ***
***                 **
**                  *
*

b.根据n的值的不同,输出相应的形状(n为奇数)
n = 5               n = 7
  *                    *
 ***                  ***
*****                *****
                    *******

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

2018-08-24 day-5_第2张图片

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

for a in range(0,34):
    for b in range(0,51):
        for c in range(0,201):
            if 3*a+2*b+0.5*c==100 and a+b+c==100:
                print('大马有%d匹,中马有%d匹,小马有%d匹'%(a,b,c))
# 输出结果
'''
大马有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只鸡,那么各有公鸡、母鸡、雏鸡多少只?请编写程序实现。

for g in range(0,21):
    for m in range(0,34):
        for c in range(0,301):
            if 5*g+3*m+1/3*c==100 and g+m+c==100:
                print('公鸡有%d只,母鸡有%d只,雏鸡有%d只'%(g,m,c))
# 输出结果
'''
公鸡有0只,母鸡有25只,雏鸡有75只
公鸡有4只,母鸡有18只,雏鸡有78只
公鸡有8只,母鸡有11只,雏鸡有81只
公鸡有12只,母鸡有4只,雏鸡有84只
'''

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

for a in range(1,7):
    for b in range(1,51):
        for c in range(1,21):
            if 15*a+2*b+5*c==100:
                print('洗发水有%d个,香皂有%d个,牙刷有%d个'%(a,b,c))
# 输出结果
'''
洗发水有1个,香皂有5个,牙刷有15个
洗发水有1个,香皂有10个,牙刷有13个
洗发水有1个,香皂有15个,牙刷有11个
洗发水有1个,香皂有20个,牙刷有9个
洗发水有1个,香皂有25个,牙刷有7个
洗发水有1个,香皂有30个,牙刷有5个
洗发水有1个,香皂有35个,牙刷有3个
洗发水有1个,香皂有40个,牙刷有1个
洗发水有2个,香皂有5个,牙刷有12个
洗发水有2个,香皂有10个,牙刷有10个
洗发水有2个,香皂有15个,牙刷有8个
洗发水有2个,香皂有20个,牙刷有6个
洗发水有2个,香皂有25个,牙刷有4个
洗发水有2个,香皂有30个,牙刷有2个
洗发水有3个,香皂有5个,牙刷有9个
洗发水有3个,香皂有10个,牙刷有7个
洗发水有3个,香皂有15个,牙刷有5个
洗发水有3个,香皂有20个,牙刷有3个
洗发水有3个,香皂有25个,牙刷有1个
洗发水有4个,香皂有5个,牙刷有6个
洗发水有4个,香皂有10个,牙刷有4个
洗发水有4个,香皂有15个,牙刷有2个
洗发水有5个,香皂有5个,牙刷有3个
洗发水有5个,香皂有10个,牙刷有1个
'''

总结

一.循环关键字

补充:python控制台输入函数 input(提示信息)
1.程序遇到input,会停下来,等待输入完成后才会执行后面的代码(阻塞线程)
2.输入结束:遇到return就结束
3.获取的输入的内容的类型是字符串类型(不管输入的是什么)

name=input('请输入名字:')
number=input('请输入一个数字:')

print(name,number,type(number))
print('=========')

break、continue、else

break:程序执行过程中,只要遇到break,就结束/跳出包含break的最近的一个循环

练习:随机生成一个整数,然后去填,猜中为止
number=random.randint(0,100)
count=0 # 统计猜的次数
while True:
    num=input('请输入一个数字(0-100):')
    # 每输入一次数字,就说明猜了一次
    count+=1
    if int(num)==number:
        print('恭喜你,猜对了!%d'%(number))
        # 根据总共猜的次数,评定智商
        if count>7:
            print('你真是个睿智啊')
        elif count>3:
            print('你可真是个小机灵鬼!')
        else:
            print('你可能不适合活在人间!')

        break # 猜对了,就不用重复的猜了,就让循环结束
    else:
        if int(num)>number:
            print('大了,再小点儿')
        else:
            print('小了,再大点儿')
计算1000以内,不能被15整除的数的和
sum1=0
for x in range(1000):
    if not x%15:
        continue

    sum1+=x
print(sum1)

else:python中的循环的最后可以添加else语句

for 变量 in 序列:
    循环体
else:
    循环结束后要执行的代码

while 条件语句:
    循环体
else:
    循环结束后要执行的代码

注意:写到else里面的语句,和写在循环外边的区别是,break的时候,else中的内容不会执行

二.print的使用

1.一个print打印完内容后,默认换行

str1='abc'
print(str1)

2.一个print可以同时打印多个内容,多个内容间用逗号隔开,打印效果,多个内容间默认是空格隔开

print(str1,'aaa',123)

3.设置一个print打印结束后的样式(默认是换行)
end=字符串/字符

print('aaa',end='')
print('bbb')
print('ccc')

4.设置同时打印多个内容,内容之间的样式(默认是空格)

print('a','b','c',sep='')

你可能感兴趣的:(2018-08-24 day-5)