python基础练习2(学python的多多少少听说过)

博客首页:knighthood2001

欢迎点赞评论️

❤️ 热爱python,期待与大家一同进步成长!!❤️

给大家推荐一款很火爆的刷题、面试求职网站

上篇博客:python基础练习(学python的多多少少听说过)

目录

阿姆斯特朗数

进制转换

ASCII码与字符相互转换

最大公约数算法

最小公倍数算法

生成日历

使用递归斐波那契数列

结尾


阿姆斯特朗数

如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。 例如1^3 + 5^3 + 3^3 = 153。

1000以内的阿姆斯特朗数: 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407。

# Python 检测用户输入的数字是否为阿姆斯特朗数# 获取用户输入的数字num = int(input("请输入一个数字: "))# 初始化变量 sumsum = 0# 指数n = len(str(num))# 检测temp = numwhile temp > 0:   digit = temp % 10   sum += digit ** n   temp //= 10# 输出结果if num == sum:   print(num,"是阿姆斯特朗数")else:   print(num,"不是阿姆斯特朗数")

结果如下:

$ python3 test.py 请输入一个数字: 345345 不是阿姆斯特朗数$ python3 test.py 请输入一个数字: 153153 是阿姆斯特朗数$ python3 test.py 请输入一个数字: 16341634 是阿姆斯特朗数

进制转换

# 获取用户输入十进制数dec = int(input("输入数字:"))print("十进制数为:", dec)print("转换为二进制为:", bin(dec))print("转换为八进制为:", oct(dec))print("转换为十六进制为:", hex(dec))

主要 使用了python的几个内置函数

结果如下:

输入数字:5十进制数为:5转换为二进制为: 0b101转换为八进制为: 0o5转换为十六进制为: 0x5

ASCII码与字符相互转换

# 用户输入字符c = input("请输入一个字符: ")# 用户输入ASCII码,并将输入的数字转为整型a = int(input("请输入一个ASCII码: "))print( c + " 的ASCII 码为", ord(c))print( a , " 对应的字符为", chr(a))

结果如下:

请输入一个字符: a请输入一个ASCII码: 101a 的ASCII 码为 97101  对应的字符为 e

最大公约数算法

# 定义一个函数def hcf(x, y):   """该函数返回两个数的最大公约数"""   # 获取最小值   if x > y:       smaller = y   else:       smaller = x   for i in range(1,smaller + 1):       if((x % i == 0) and (y % i == 0)):           hcf = i   return hcf# 用户输入两个数字num1 = int(input("输入第一个数字: "))num2 = int(input("输入第二个数字: "))print( num1,"和", num2,"的最大公约数为", hcf(num1, num2))

结果如下:

输入第一个数字: 54输入第二个数字: 2454 和 24 的最大公约数为 6

最小公倍数算法

# 定义函数def lcm(x, y):   #  获取最大的数   if x > y:       greater = x   else:       greater = y   while(True):       if((greater % x == 0) and (greater % y == 0)):           lcm = greater           break       greater += 1   return lcm# 获取用户输入num1 = int(input("输入第一个数字: "))num2 = int(input("输入第二个数字: "))print( num1,"和", num2,"的最小公倍数为", lcm(num1, num2))

结果如下:

输入第一个数字: 54输入第二个数字: 2454 和 24 的最小公倍数为 216

生成日历

# 引入日历模块import calendar# 输入指定年月yy = int(input("输入年份: "))mm = int(input("输入月份: "))# 显示日历print(calendar.month(yy,mm))

结果如下:

输入年份: 2015输入月份: 6     June 2015Mo Tu We Th Fr Sa Su 1  2  3  4  5  6  7 8  9 10 11 12 13 1415 16 17 18 19 20 2122 23 24 25 26 27 2829 30

使用递归斐波那契数列

def recur_fibo(n):   """递归函数   输出斐波那契数列"""   if n <= 1:       return n   else:       return(recur_fibo(n-1) + recur_fibo(n-2))# 获取用户输入nterms = int(input("您要输出几项? "))# 检查输入的数字是否正确if nterms <= 0:   print("输入正数")else:   print("斐波那契数列:")   for i in range(nterms):       print(recur_fibo(i))

结果如下:

您要输出几项? 10斐波那契数列:0112358132134

结尾

本文为大家带来几个可能会用到的python基础题,想了解更多,戳这!!