14、两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
t1 = ['a','b','c']
for x in t1:
? ? for y in t1:
? ? ? ? for z in t1:
? ? ? ? ? ? if x != y and x!=z and y!=z:
? ? ? ? ? ? ? ? if x != 'a' and x != 'c' and z != 'c':
? ? ? ? ? ? ? ? ? ? print(x, y, z)
15、有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。
fenzi = 2.0
fenmu = 1.0
total = 0
for i in range(1,21):
? ? fenzi,fenmu = fenzi+fenmu, fenzi
? ? total += fenmu/fenzi
print(total)
16、利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
两种方法
```
def fn(str1):
? ? l = []
? ? i = len(str1) - 1
? ? while i >= 0:
? ? ? ? l.append(str1[i])
? ? ? ? i -= 1
? ? new_str = ''.join(l)
? ? return new_str
fn = fn
print(fn(sdj3s))
-------------------------
def fn(str1):
? ? l = list(str1)
? ? l.sort(reverse=True)
? ? new_str = ''.join(l)
? ? return new_str
fn = fn
print(fn('23hej'))
```
?
17、有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
```
def fn(num):
? ? pn = 10
? ? for i in range(2,num+1):
? ? ? ?pn = pn + 2
? ? ? ?i += 1
? ? return pn
fn = fn
print(fn(5))?? ?
```
18、给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字
```
num = str(int(input('num:')))
l_num = len(num)
list_num = list(num)
list_num.sort(reverse=True)
new_num =''.join(list_num)
print('该数是几位数:',l_num,'新的数字',new_num)
```
19、请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。 程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母
```
num = input('please input the first letter:') num = num.upper() if num
== 'M':
? ? print('today is Monday!') elif num == 'W':
? ? print('today is Wednesday!') elif num == 'F':
? ? print('today is Friday!') elif num == 'T':
? ? num2 = input('plz input the 2nd letter:')
? ? num2 = num2.upper()
? ? if num2 == 'U':
? ? ? ? print('today is Tuesday!')
? ? else:
? ? ? ? print('today is Thursday!') elif num == 'S':
? ? num2 = input('plz input the 2nd letter:')
? ? num2 = num2.upper()
? ? if num2 == 'A':
? ? ? ? print('today is Saturday!')
? ? else:
? ? ? ? print('today is Sunday!')
```
?20、求一个3*3矩阵主对角线元素之和
sum = 0
x = [[1,1,1],[2,2,2],[3,3,3]]
for i in range(0,len(x)):
for j in range(0,len(x)):
if (i==j) or (j == len(x)-1-i):
sum += x[i][j]
print(sum)
21、用*输出一个5行的左下三角形。
22、判断一个5位数是不是回文数
23、一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程 找出1000以内的所有完数。
- 碎碎念:这个题的陷阱在于第二个for循环里的if语句判断,你品品....
for i in range(1,1001):
total = 0
for j in range(1,i):
if i % j == 0:
total += j
if i == total:
print(i)
?
?
|