2020-09-14python十四

#!/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))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值