第21-第30个python练习

21.对列表
进行冒泡排序

defbubble_sort(lst):
n=len(lst)
foriinrange(n):
forjinrange(0,n-i-1):
iflst[j]>lst[j+1]:
lst[j],lst[j+1]=lst[j+1],lst[j]

lst=[64,34,25,12,22,11,90]
print("原始列表:",lst)
bubble_sort(lst)
print("排序后的列表:",lst)

22.求最大公约数和最小公倍数

defgcd(x,y):
while(y):
x,y=y,x%y
returnx

deflcm(x,y):
return(x*y)//gcd(x,y)

num1=int(input("输入第一个数字:"))
num2=int(input("输入第二个数字:"))

print("{0}和{1}的最大公约数为{2}".format(num1,num2,gcd(num1,num2)))
print("{0}和{1}的最小公倍数为{2}".format(num1,num2,lcm(num1,num2)))

23.判断一个数字是否为完全数

defis_perfect_number(num):
sum=0foriinrange(1,num):
ifnum%i==0:
sum+=i
ifsum==num:
returnTrueelse:
returnFalsenum=int(input("输入一个正整数:"))
ifis_perfect_number(num):
print("{0}是完全数".format(num))
else:
print("{0}不是完全数".format(num))

24.计算三角形面积

base=float(input("输入三角形底边长:"))
height=float(input("输入三角形高:"))
area=(base*height)/2print("三角形面积为:%.2f"%area)

25.将字符串中的大写字母转换为小写字母

defto_lower(string):
return"".join([chr(ord(c)+32)if65<=ord(c)<=90elsecforcinstring])

my_str="HelloWorld"print("原始字符串:",my_str)
print("转换后的字符串:",to_lower(my_str))

26.判断一个数字是否为阿姆斯特朗数

defis_armstrong_number(num):
sum=0n=len(str(num))
foriinstr(num):
sum+=int(i)**n
ifsum==num:
returnTrueelse:
returnFalsenum=int(input("输入一个数字:"))
ifis_armstrong_number(num):
print("{0}是阿姆斯特朗数".format(num))
else:
print("{0}不是阿姆斯特朗数".format(num))

27.计算矩形面积

length=float(input("输入矩形长:"))
width=float(input("输入矩形宽:"))
area=length*widthprint("矩形面积为%.2f"%area)

28.计算圆柱体的体积

importmath
radius=float(input("输入圆柱体底面半径:"))
height=float(input("输入圆柱体高:"))
volume=math.pi*radius**2*heightprint("圆柱体的体积为:%.2f"%volume)

29.将列表中的元素向右移动n位

defright_rotate(lst,n):
returnlst[-n:]+lst[:-n]

lst=[1,2,3,4,5]
n=2print("列表:",lst)
print("向右移动{0}位后的列表:".format(n),right_rotate(lst,n))

30.判断一个字符串是否为回文数

defis_palindrome(string):
string=string.lower()returnstring==string[::-1]
my_str="racecar"
ifis_palindrome(my_str):
print("{0}是回文数".format(my_str))
else:
print("{0}不是回文数".format(my_str))

posted on 2023-03-28 10:14  skywide  阅读(11)  评论(0)    收藏  举报  来源