python问题两个乒乓球队进行比赛_Python exercises (2)

在学习的路上,我们不仅要大步向前走,还要常回头看看,夯实夯实我们的基础,下面是 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 System​weibo.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值