Time will tell.
1、用代码在打印行中,输出一个菱形图案。
代码:
def diamond(side_len):
for i in range(1, side_len + 1, 2):
print((i * '*').center(side_len, ' '))
for i in reversed(range(1, side_len, 2)):
print((i * '*').center(side_len, ' '))
if __name__ == '__main__':
diamond(7)
2、2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。
代码:
a = 2.0
b = 1.0
s = 0
for n in range(1,21):
s += a / b
t = a
a = a + b
b = t
print s
3、求1+2!+3!+4!..+20!的和值。
代码:
n = 0
s = 0
t = 1
for n in range(1,21):
t *= n
s += t
print '1! + 2! + 3! + ... + 20! = %d' % s
4、使用递归的方法求5!。
代码:
def fact(j):
sum = 0
if j == 0:
sum = 1
else:
sum = j * fact(j - 1)
return sum
print fact(5)
5、用递归函数调用方式,将所输入的5个字符以反序打印出来。
代码:
def output(s,l):
if l==0:
return
print (s[l-1])
output(s,l-1)
s = raw_input('Input a string : ')
l = len(s)
output(s,l)
6、有5个人,第五个人他说比第四个人大2岁,第四个人他说比第三个人大2岁,第三个人说比第二个人大2岁,第二个人说比第一个人大2岁。第一个人他说自己10岁。请问第五个人年龄多大?(要求使用递归方法求出年纪)
代码:
def age(n):
if n == 1: c = 10
else: c = age(n - 1) + 2
return c
print age(5)
7、随机给出一个不多于5位的正整数,要求:一、求出它是几位数;二、逆序打印出各个位的数字。
代码:
x = int(raw_input("请输入一个数:\n"))
a = x / 10000
b = x % 10000 / 1000
c = x % 1000 / 100
d = x % 100 / 10
e = x % 10
if a != 0:
print "该 5 位数的逆序:",e,d,c,b,a
elif b != 0:
print "该 4 位数的逆序:",e,d,c,b,
elif c != 0:
print "该 3 位数的逆序:",e,d,c
elif d != 0:
print "该 2 位数的逆序:",e,d
else:
print "该 1 位数:",e
8、随机输入一个5位数,判断出它是不是回文数。
(12321是回文数,个位与万位相同,十位与千位相同)
代码:
a = int(raw_input("请输入一个数字:\n"))
x = str(a)
flag = True
for i in range(len(x)/2):
if x[i] != x[-i - 1]:
flag = False
break
if flag:
print "%d 是一个回文数!" % a
else:
print "%d 不是一个回文数!" % a
9、随机输入一个英文星期(1-7)的第一个字母来判断出是星期几,如果第一个字母有相同的,则继续输入第二个字母来继续判断。
代码:
def day_of_week():
s1 = input("please input the first letter:")
week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
lst = [x for x in week if x.lower().startswith(s1.lower())]
while len(lst) > 1:
s = input("please input the next letter:")
s1 += s
lst = [x for x in week if x.lower().startswith(s1.lower())]
if not lst:
print('please input the right letter!')
dow = day_of_week()
lst = [dow]
return lst[0]
if __name__ == '__main__':
print(day_of_week())
10、用逗号将列表分隔开来。
代码:
L = [1,2,3,4,5]
s1 = ','.join(str(n) for n in L)
print s1
11、用代码打印出100以内的所有素数。
代码:
lower = int(input("输入区间最小值: "))
upper = int(input("输入区间最大值: "))
for num in range(lower,upper + 1):
# 素数大于 1
if num > 1:
for i in range(2,num):
if (num % i) == 0:
break
else:
print(num)
12、对随机输入的10个数字进行排序。
代码:
if __name__ == "__main__":
N = 10
# input data
print '请输入10个数字\n'
l = []
for i in range(N):
l.append(int(raw_input('输入一个数:\n')))
print
for i in range(N):
print l[i]
print
# 排列10个数字
for i in range(N - 1):
min = i
for j in range(i + 1,N):
if l[min] > l[j]:min = j
l[i],l[min] = l[min],l[i]
print '排列后:'
for i in range(N):
print l[i]
13、求一个3 * 3矩阵主对角线元素之和
代码:
def matrix_diagonal_sum(num):
a = []
total = 0
for i in range(num):
a.append([])
for j in range(num):
a[i].append(int(input("Please input a integer number:")))
if i == j:
total += a[i][j]
return total
if __name__ == '__main__':
print(matrix_diagonal_sum(3))
14、输入一个随机数,将它插入到原有的一个有序数组当中,并按顺序排列。
代码:
if __name__ == '__main__':
# 0作为加入数字的占位符
a = [1,4,6,9,13,16,19,28,40,100,0]
print '原始列表:'
for i in range(len(a)):
print a[i],
number = int(raw_input("\n插入一个数字:\n"))
end = a[9]
if number > end:
a[10] = number
else:
for i in range(10):
if a[i] > number:
temp1 = a[i]
a[i] = number
for j in range(i + 1,11):
temp2 = a[j]
a[j] = temp1
temp1 = temp2
break
print '排序后列表:'
for i in range(11):
print a[i],
15、用代码将一个数组逆序输出。
代码:
if __name__ == '__main__':
a = [9,6,5,4,1]
N = len(a)
print a
for i in range(len(a) / 2):
a[i],a[N - i - 1] = a[N - i - 1],a[i]
print a
16.有两个3行3列的矩阵,实现其对应位置的数据相加,并返回一个新矩阵。
X = [[12,7,3],
[4 ,5,6],
[7 ,8,9]]
Y = [[5,8,1],
[6,7,3],
[4,5,9]]
代码:
X = [[12,7,3],
[4 ,5,6],
[7 ,8,9]]
Y = [[5,8,1],
[6,7,3],
[4,5,9]]
result = [[0,0,0],
[0,0,0],
[0,0,0]]
# 迭代输出行
for i in range(len(X)):
# 迭代输出列
for j in range(len(X[0])):
result[i][j] = X[i][j] + Y[i][j]
for r in result:
print(r)
17.用代码算出 1 到 100之间的和值。
代码:
tmp = 0
for i in range(1,101):
tmp += i
print 'The sum is %d' % tmp
18.用代码实现,每次运行打印行输入一个随机数。
代码:
import random
#生成 10 到 20 之间的随机数
print random.uniform(10, 20)
19.在打印行随机输入3个数字,然后按照大小排序输出。
代码:
if __name__ == '__main__':
n1 = int(raw_input('n1 = '))
n2 = int(raw_input('n2 = '))
n3 = int(raw_input('n3 = '))
def swap(p1,p2):
return p2,p1
if n1 > n2 : n1,n2 = swap(n1,n2)
if n1 > n3 : n1,n3 = swap(n1,n3)
if n2 > n3 : n2,n3 = swap(n2,n3)
print n1,n2,n3
20.在打印行打印出杨辉三角形,要求输出10行。
代码1:
def yh_triangle(num):
triangle = []
for i in range(num):
triangle.append([])
triangle[i].append(1)
for j in range(1, i+1):
if j == i:
triangle[i].append(1)
break
else:
triangle[i].append(triangle[i-1][j-1] + triangle[i-1][j])
print(' '.join(str(x) for x in triangle[i]))
if __name__ == '__main__':
yh_triangle(10)
代码2:
if __name__ == '__main__':
a = []
for i in range(10):
a.append([])
for j in range(10):
a[i].append(0)
for i in range(10):
a[i][0] = 1
a[i][i] = 1
for i in range(2,10):
for j in range(1,i):
a[i][j] = a[i - 1][j-1] + a[i - 1][j]
from sys import stdout
for i in range(10):
for j in range(i + 1):
stdout.write(str(a[i][j]))
stdout.write(' ')
print
打印结果:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
絮叨
如果你对Python自动化测试、Python面试题、Python练习题感兴趣的话可以加入我们175317069一起学习喔。群里会有各项资料发放,也有行业深潜多年的测试人技术分析讲解。
欢迎【评论】、【点赞】、【关注】礼貌三连~
Time will tell.(时间会证明一切)