练习一:实现reverse(s)函数,功能与s.reverse()相同。
In [9]:
def fanzhuan(s):
x=''
for i in range(len(s)):
x=s[-i]+x
return x
n=input('请输入一串字符:')
print(fanzhuan(n))
练习2.写函数,根据给定符号和行数,打印相应直角三角形,等腰三角形及其他形式的三角形。
In [22]:
def RT_triangle(a,b):
for i in range(b+1):
print(a*i)
def IT_triangle(a,b):
for i in range(1,b):
if i == 1:
print(' '*(b*2-1) +a)
else:
print(' '*(b*2-i) +a*i+a*(i-1))
x=input('请输入给定符号:')
y=int(input('请输入行数:'))
RT_triangle(x,y)
IT_triangle(x,y)
练习三:将任务4中的英语动词变复数的函数,完整实现。
In [1]:
def change(word):
if word.endswith('y'):
return word[:-1] + 'ies'
elif word[-1] in ('s'or'x') or word[-2:] in ['sh', 'ch']:
return word + 'es'
elif word.endswith('f') or word[-2:] in ['fe']:
return word[:-2] + 'ves'
else:
return word + 's'
x=input('输入单词')
print(change(x))
四:写函数,根据给定符号,上底、下底、高,打印各种梯形。
In [2]:
def tixing(a,b,c,d):
if b<=c:
k=(c-b)//(d-1)
for i in range(d):
print(b*a+k*a*i)
else:
k=k=(b-c)//(d-1)
for i in range(d):
print((b-k*i)*a)
x=input('请输入给定符号')
A=int(input('请输入上底长度'))
B=int(input('请输入下底长度'))
h=int(input('请输入高度'))
tixing(x,A,B,h)
练习五:写函数,根据给定符号,打印各种菱形。
In [12]:
def linxing(a,b):
x=b//2
for i in range(1,x+1):
print(' '*(x-(i-1))+a*(2*i-1))
for j in range(0,x+1):
print(' '*j+a*(b-j*2))
x=input('请输入给定符号(为单个字符):')
y=int(input('请输入给定行数,必须为奇数:'))
linxing(x,y)
练习六:文本加密解密。
练习六:与本小节任务基本相同,但要求打印回文字符倒三角形。
In [3]:
def plalindrome(line):
x=len(line)
for i in range(1,x*2+1):
if i==x*2:
print(' '*i+line[0])
break
if i%2==1:
print(' '*i+line[:x-((i-1)//2)]+line[x-((i+1)//2)::-1])
if i%2==0:
print(' '*i+line[:x-(i//2)]+ line[x-(i//2)]+line[x-(i//2)-1::-1])
def main():
text = '床前明月光'
plalindrome(text)
if __name__ == '__main__':
main()