In [1]:
#练习一:自己定义一个reverse(s)函数,功能返回字符串s的倒序字符串。
#练习二:写函数,根据给定符号和行数,打印相应直角三角形,等腰三角形及其他形式的三角形。
#练习三:将任务4中的英语名词单数变复数的函数,尽可能的考虑多种情况,重新进行实现。
#练习四:写函数,根据给定符号,上底、下底、高,打印各种梯形。
#练习五:写函数,根据给定符号,打印各种菱形。
#练习六:与本小节任务基本相同,但要求打印回文字符倒三角形。
In [2]:
#练习一:自己定义一个reverse(s)函数,功能返回字符串s的倒序字符串。
def my_reverse(s):
v=s[len(s)::-1]
#v=s[-1:-len(s)-1:-1]
return v
def main():
s = '我喜欢编程。'
print (my_reverse(s))
if __name__ == '__main__':
main()
In [3]:
#练习二:写函数,根据给定符号和行数,打印相应直角三角形,等腰三角形及其他形式的三角形。
def my_triangle(s,line_num):
if s==1:
for i in range(1,line_num+1):
print('*'*(2*i-1))
elif s==2:
for j in range(1,line_num+1):
print(' '*(line_num-j) +'*'*(2*j-1))
else:
for k in range(1,line_num+1):
print(' '*(2*(line_num-k)) +'*'*(3*k-2))
def main():
line_num=6
s=1#打印直角三角形
my_triangle(s,line_num)
s=2#打印等腰三角形
my_triangle(s,line_num)
s=3#打印不规则三角形
my_triangle(s,line_num)
if __name__ == '__main__':
main()
In [10]:
#练习三:将任务4中的英语名词单数变复数的函数,尽可能的考虑多种情况,重新进行实现。
def dan2fu(word):
if(word.endswith('s') | word.endswith('z') | word.endswith('sh') | word.endswith('ch')):
word=word+'es'
elif(word.endswith('y')):
word=word[:-1]+'ies'
else:
word=word+'s'
return word
def main():
print(dan2fu('happy'))
print(dan2fu('watch'))
print(dan2fu('egg'))
if __name__ == '__main__':
main()
In [8]:
#练习四:写函数,根据给定符号,上底、下底、高,打印各种梯形。
def my_trapezoid(s,up,down,height):
if (s==1):
num=(down-up)/height
print('打印直角梯形:')
for i in range(1,height+1):
n=int(num*i)
print('*'*up +'*'*n)
elif(s==2):
num=((down-up)/2)/height
print('打印等腰梯形:')
for i in range(1,height+1):
n=int(num*i)
l=int((down-up)/2-n)
print(' '*l +'*'*n +'*'*up +'*'*n)
else:
num=(down-up)/3
print('打印不规则梯形:')
for i in range(1,height+1):
m=int(((num*2)/height)*i)
n=int(((num)/height)*i)
l=int(((down-up)/3)*2-m)
print(' '*l +'*'*m +'*'*up +'*'*n)
def main():
my_trapezoid(1,10,18,6)
print()
my_trapezoid(2,10,18,6)
print()
my_trapezoid(3,10,18,6)
if __name__ == '__main__':
main()
In [9]:
#练习五:写函数,根据给定符号,打印各种菱形。
def my_diamond(line,star):
for i in range(1,line+1):
print(' '*((line-i)*(star//2)) +'*'*(star*i-star+1))
for j in range(1,line):
print(' '*((star//2)*j) +'*'*(star*(line-j)-star+1))
def main():
#line是菱形每条边上的*的个数(即行数),star是每行的增量(只能是偶数)
print('增量为2:')
my_diamond(6,2)
print('增量为4:')
my_diamond(5,4)
print('增量为6:')
my_diamond(5,6)
if __name__ == '__main__':
main()
In [5]:
#练习六:与本小节任务基本相同,但要求打印回文字符倒三角形。
def replalindrome(text):
for i in range(1, len(text)*2+1):
if (i==14):
print(' '*13 + text[0:1])
elif (i%2 ==1):
print(' '*(i-1) + text[:len(text)-(i//2)] + text[len(text)-(i//2)-1::-1])
else:
print(' '*(i-1) + text[:len(text)-(i//2)] + text[len(text)-(i//2)] + text[len(text)-(i//2)-1::-1])
def main():
text = '赏花归去马如飞'
replalindrome(text)
if __name__ == '__main__':
main()