#!/usr/bin/python3
print('Python十四')
#141、判断奇数偶数
while True:#这种写法可以有效避免输入的数据不是所需类型出现程序退出
try:
num=int(input('请输入数字,程序进行奇数偶数判断:',))
except ValueError:#不是纯数字需要重新输入
print('输入的不是整数,请重新输入')
continue
if (num % 2)== 0:
print('{0}是偶数'.format(num))
else:
print('{0}是奇数'.format(num))
break
#142、判断闰年
while True:#这种写法可以有效避免输入的数据不是所需类型出现程序退出
try:
year=int(input('请输入年份:'))
except ValueError:#输入的不是数字
print('输入的不是整数,请重新输入')
continue
if (year % 4) == 0 and (year % 100) != 0 or (year % 400) == 0:#整百年能被400整除的是闰年
print('{}是闰年'.format(year))
else:
print('{}不是闰年'.format(year))
break
# 方法二、使用Python封装的calendar库中isleap() 方法来判断是否为闰年
import calendar
print(calendar.isleap(2000))
print(calendar.isleap(1900))
print(calendar.isleap(1800))
#获取最大值函数
print(max(1,3,6))
print(max([100000,10,30,30000]))
a=[]
while True:
#输入q来结束输入数字
c=input('请输入数字获取最大值,输入q结束:')
if c!='q':
try:
i=int(c)
a.append(i)
print(a)
except ValueError:
print('输入的不是数字')
else:
break
print('最大数字是:',max(a))
#143、质数判断
num = int(input("请输入一个数字: "))
# 质数大于 1
if num > 1:
# 查看因子
for i in range(2,num):
if (num % i) == 0:
print(num,"不是质数")
print(i,"乘于",num//i,"是",num)
break
else:
print(num,"是质数")
# 如果输入的数字小于或等于 1,不是质数
else:
print(num,"不是质数")
# Python 程序用于检测用户输入的数字是质数还是合数
import math
# 用户输入数字
num = int(input("请输入一个数字: "))
# 质数大于 1
if num > 1:
# 找到其平方根( √ ),减少算法时间
square_num = math.floor( num ** 0.5 )
# 查找其因子
for i in range(2, (square_num+1)): #将平凡根加1是为了能取到平方根那个值
if (num % i) == 0:
print(num, "是合数")
print(i, "乘于", num // i, "是", num)
break
else:
print(num, "是质数")
# 如果输入的数字小于或等于 1,不是质数
else:
print(num, "既不是质数,也不是合数")
#144、输出指定范围内的素数
#素数(prime number)又称质数,有无限个。除了1和它本身以外不再被其他的除数整除。
lower=int(input('请输入最小数值:'))
upper=int(input('请输入最大数值:'))
for num in range(lower,upper):
#素数大于1
if num > 1:
for i in range(2,num):
if (num % i) == 0:
break
else:
print(num)
#145、阶乘实例
# 整数的阶乘(英语:factorial)是所有小于及等于该数的正整数的积,0的阶乘为1。即:n!=1×2×3×...×n。
# 通过用户输入数字计算阶乘
# 获取用户输入的数字
num = int(input("请输入一个数字: "))
factorial = 1
# 查看数字是负数,0 或 正数
if num < 0:
print("抱歉,负数没有阶乘")
elif num == 0:
print("0 的阶乘为 1")
else:
for i in range(1,num + 1):
factorial = factorial*i
print("%d 的阶乘为 %d" %(num,factorial))
#146、# 九九乘法表
for i in range(1, 10):
for j in range(1, i+1):
print('{}x{}={}\t'.format(j, i, i*j), end='')
print()
#147、斐波那契数列
# 斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13,特别指出:第0项是0,第1项是第一个1。从第三项开始,每一项都等于前两项之和。
# 第一种是通过循环实现,第二种是通过递归调用来实现。第二种代码稍显简洁,结构较清晰,但由于递归占用较多资源,对于大规模的计算消耗比较大,运算比较慢。反而通过循环实现的运算较快。
#递归实现
num=int(input("请输入要输出多少项:"))
def Count_Function(n):
if(n<3):
return(n)
else:
return(Count_Function(n-1)+Count_Function(n-2))
i=1
while(i<=num):
print(Count_Function(i),end="\t")
i+=1
print()
#循环来实现
num=int(input("请输入您要显示的项数:"))
print("-------循环-------");
n=3
a=[1,2]
if(num==1):
print(a[0],end=" ")
elif(num==2):
print(a[num-2],a[num-1],end=" ")
else:
while(n<=num):
temp=a[n-2]+a[n-3]
a.append(temp)
n+=1
for i in a:
print(i,end=' ')
print()
#148、阿姆斯特朗数
'''
如果一个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("请输入一个数字: "))
# 初始化变量 sum
sum = 0
# 指数
n = len(str(num))
# 检测
temp = num
while temp > 0:
digit = temp % 10
sum += digit ** n
temp //= 10
# 输出结果
if num == sum:
print(num,"是阿姆斯特朗数")
else:
print(num,"不是阿姆斯特朗数")
#149、十进制转二进制、八进制、十六进制
# 获取用户输入十进制数
dec = int(input("输入数字:"))
print("十进制数为:", dec)
print("转换为二进制为:", bin(dec))
print("转换为八进制为:", oct(dec))
print("转换为十六进制为:", hex(dec))
#150、ASCII码与字符相互转换
# 用户输入字符
c = input("请输入一个字符(例如a): ")
# 用户输入ASCII码,并将输入的数字转为整型
a = int(input("请输入一个ASCII码(例如101): "))
print( c + " 的ASCII 码为", ord(c))
print( a , " 对应的字符为", chr(a))