博客首页: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基础题,想了解更多,戳这!!