在学习的路上,我们不仅要大步向前走,还要常回头看看,夯实夯实我们的基础,下面是 10 道 python 基础习题:打印出所有的"水仙花数";
利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示;
输出指定格式的日期;
输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数;
# 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字;
一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数;
一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个;以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了;求第一天共摘了多少?
两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人;已抽签决定比赛名单;有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单;
有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和;
题十一:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身
# 例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
import math
def test11():
number_of_daffodils = []
for n in range(100,1000):
a = n % 10
b = (n % 100 - a) / 10
c = (n - b * 10 - a) / 100
result = int(pow(a,3) + pow(b,3) + pow(c,3))
if result == n:
number_of_daffodils.append(n)
print("所有的水仙花数:%s"%number_of_daffodils)
if __name__ == '__main__':
test11()
题十二:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示
def test13():
grade = int(input("请输入成绩:"))
if grade < 60:
print("C")
elif grade < 90:
print("B")
else:
print("A")
if __name__ == '__main__':
while True:
test13()
题十三:输出指定格式的日期
import datetime
def test14():
# 创建日期对象
miyazakiBirthDate = datetime.date(1949, 10, 9)
print(miyazakiBirthDate.strftime('%d/%m/%Y'))
# 日期算术运算
miyazakiBirthNextDay = miyazakiBirthDate + datetime.timedelta(days=1)
print(miyazakiBirthNextDay.strftime('%d/%m/%Y'))
# 日期替换
miyazakiFirstBirthday = miyazakiBirthDate.replace(year=miyazakiBirthDate.year + 71,month=miyazakiBirthDate.month - 7,day=miyazakiBirthDate.day + 8)
print(miyazakiFirstBirthday.strftime('%d/%m/%Y'))
if __name__ == '__main__':
test14()
题十四:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数
def test15():
string = input("Please input your string:")
letter, space, digital, others = 0, 0, 0, 0
for value in string:
if value.isalpha():
letter += 1
elif value.isdigit():
digital += 1
elif value.isspace():
space += 1
else:
others += 1
print("%s字串里边有:%d个数字,%d个字母,%d个空格,%d个其他字符"%(string, digital, letter, space, others))
if __name__ == '__main__':
test15()
题十五:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字
# 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。
def test16():
a = int(input("Please enter a single digit :"))
x = int(input("Please enter the number of times you want it to be added :"))
s,i,z = 0,0,a
while i < x:
s += z
z = int(str(z) + str(a))
i += 1
print("The result of the operation is :%d"%s)
if __name__ == '__main__':
test16()
题十六:一个数如果恰好等于它的因子之和,这个数就称为"完数";例如6=1+2+3.编程找出1000以内的所有完数
# 一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。
def test17():
complete_number = []
for value in range(2,1000):
sum = 0
for j in range(1,value):
if value % j == 0:
sum += j
if value == sum:
complete_number.append(value)
print("All finishes under a thousand : %s"%complete_number)
if __name__ == '__main__':
test17()
题十七:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
height = 100
def test18(distance,n):
global height
height /= 2.0
if(n <= 0):
return 0
return 2 * distance + test18(distance / 2.0, n-1)
if __name__ == '__main__':
distance,n = 100,10
print(distance + test18(distance/2,n-1))
print(height)
题十八:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个;以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了;求第一天共摘了多少?
def test19(peach,day):
if day <= 1:
print("Number of peaches picked on the first day:%d"%peach)
return 0
return peach + test19((peach+1)*2, day-1)
if __name__ == '__main__':
test19(1,10)
题十九:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人;已抽签决定比赛名单;有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单
def test20():
list_one,list_two,list_target = ['a','b','c'],['x','y','z'],[]
for elem_one in list_one:
for elem_two in list_two:
if elem_one == 'a' and elem_two == 'x':
continue
if elem_one == 'c':
if elem_two == 'z' or elem_two == 'x':
continue
list_target.append(elem_one + elem_two)
print(list_target)
if __name__ == '__main__':
test20()
题二十:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和
# 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
def test21(x,y,z):
if z <= 0:
return 0
return x/y + test21(x+y, x, z-1)
if __name__ == '__main__':
print(test21(2,1,20))
小伙伴们,有什么问题请在下方留言(欢迎指正错误,大家一起学习讨论,感谢) ^_^
关注我,带你一起写bug
warning :未经授权,不得转载叁贰壹:Python exercises (1)zhuanlan.zhihu.com
CSDN & 微博CSDN-个人空间me.csdn.netSina Visitor Systemweibo.com