1-23 练习题2

 

(一)利用递归方法求5!

In [2]:
def tang(j):
    sum_value=0
    if j==0:
        sum_value=1
    else:
        sum_value=j*tang(j-1)
    return sum_value
for i in range(10):
    print('%d!=%d' % (i,tang(i)))
 
0!=1
1!=1
2!=2
3!=6
4!=24
5!=120
6!=720
7!=5040
8!=40320
9!=362880
 

(二)用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来

In [5]:
def output(s,l):
    if l==0:
        return
    print(s[l-1])
    output(s,l-1)
s=input('输入一个串')
l=len(s)
output(s,l)
print(s[1])
 
输入一个串zjjd
d
j
j
z
j
 

(三)按逗号分隔列表

In [6]:
L=['tang','yu','di',123]
s=','.join(str(n)for n in L)
s
Out[6]:
'tang,yu,di,123'
 

(四)将一个数组逆序输出

In [9]:
 a=[9,5,3,4,2,8]
N=len(a)
print(a)
for i in range(int(len(a)/2)):
    a[i],a[N-1-i]=a[N-1-i],a[i]
print(a)
 
[9, 5, 3, 4, 2, 8]
[8, 2, 4, 3, 5, 9]
 

(五)两个3行3列的矩阵,实现其对应位置的数据相加,并返回一个新矩阵

In [10]:
X=[[1,2,3],
  [4,5,6],
  [7,8,9]]
Y=[[10,2,3],
  [4,50,6],
  [7,8,90]]
Z=[[0,0,0],
  [0,0,0],
  [0,0,0]]
for i in range(3):
    for  j in range(3):
        Z[i][j]=X[i][j]+Y[i][j]
for z in Z:
    print(z)
 
[11, 4, 6]
[8, 55, 12]
[14, 16, 99]
 

(六)匿名函数求和

In [11]:
sum_value1=lambda x,y:x+y
print(sum_value1(1,2))
 
3
 

(七)查找字符串的位置

In [12]:
s1='asdffgdhjhgj'
s2='ffg'
print(s1.find(s2))
 
3
 

(八)在字典中找到年龄最大的人,并输出

In [25]:
people={'LW':40,'ZS':30,'Others':34}
m='ZS'
for key in people.keys():
    if people[key]>people[m]:
        m=key
print(m,people[m])
print(people['LW'])
 
LW 40
40
 

(九)列表转换成字典的结构

In [27]:
k=['tang','yudi']
v=[123,456]
print(dict([k,v]))
 
{'tang': 'yudi', 123: 456}
 

(十)从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”文件

In [4]:
f=open('test.txt','w')
s=input('输入一串字符串:')
s=s.upper()#小写转大写
f.write(s)
f.close()

f=open('test.txt','r')
print(f.read())
f.close()
 
输入一串字符串:hfhgjg 4kk
HFHGJG 4KK
原文地址:https://www.cnblogs.com/AI-robort/p/11636529.html