作业
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)
8.控制台输出三角形
a.根据n的值的不同,输出相应的形状
n = 5时 n = 4
***** ****
**** ***
*** **
** *
*
b.根据n的值的不同,输出相应的形状(n为奇数)
n = 5 n = 7
* *
*** ***
***** *****
*******
9.输出9*9口诀。 1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
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='')