#!/usr/bin/python3
print('Python十五')
#151、最大公约数算法
#最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。
def test1(x,y):
if x>y:
smaller = x
else:
smaller = y
for i in range(1,smaller+1):#smaller+1是为了避免输入两个相同的数字导致程序出错
if(x%i==0^y%i==0):
bigger=i
print(bigger)
return bigger
num1=int(input('第1个数字:'))
num2=int(input('第2个数字:'))
print('最大公约数:',test1(num1,num2))
print(10**6)
#152、最小公倍数
# 两个或多个整数公有的倍数叫做它们的公倍数,其中除0以外最小的一个公倍数就叫做这几个整数的最小公倍数。
def test2(x,y):
if x>y:
bigger=x
else:
bigger=y
while True:
if (bigger%x==0 and bigger%y==0):
a=bigger
print(a)
break
bigger +=1
return a
num1=int(input('第1个数字:'))
num2=int(input('第2个数字:'))
print('最小公倍数:',test2(num1,num2))
#153、最小公倍数
def lcm(a, b):
if b > a:
a, b = b, a # a为最大值
if a % b == 0:
return a # 判断a是否为最小公倍数
mul = 2 # 最小公倍数为最大值的倍数
while a*mul % b != 0:
mul += 1
print(a*mul)
return a*mul
while(True):
a = int(input("Input 'a':"))
b = int(input("Input 'b':"))
print(lcm(a, b))
break
#154、简单计算器
def add(x, y):
return x + y
def subtract(x, y):
return x - y
def multiply(x, y):
return x * y
def divide(x, y):
return x / y
# 用户输入
print("选择运算:")
print("1、相加")
print("2、相减")
print("3、相乘")
print("4、相除")choice = input("输入你的选择(1/2/3/4):")
num1 = int(input("输入第一个数字: "))
num2 = int(input("输入第二个数字: "))
if choice == '1':
print(num1,"+",num2,"=", add(num1,num2))
elif choice == '2':
print(num1,"-",num2,"=", subtract(num1,num2))
elif choice == '3':
print(num1,"*",num2,"=", multiply(num1,num2))
elif choice == '4':
print(num1,"/",num2,"=", divide(num1,num2))
else:
print("非法输入")
#155、生成日历
import calendar
calendar.setfirstweekday(firstweekday=6)#设置第一天是星期天,不写这一行默认第一天是周一
year=int(input('输入年份,生成日历:'))
# 生成一年12个月
for a in range(1,13):
print('----------------------')
print(calendar.month(year,a))
#156、递归斐波那契数列
'''
斐波那契数列(Fibonacci sequence),又称黄金分割数列、
因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……
在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*),如果设an为该数列的第n项(),那么这句话可以写成如下形式:A(n)=A(n-1)+A(n-2)
这个数列从第3项开始,每一项都等于前两项之和。
'''
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))
#157、文件IO
with open('test_io.txt','wt') as io_file:
io_file.write('read\ntest file')
with open('test_io.txt','r') as read_testio:
text=read_testio.read()
print(text)
#158、字符串判断
str = "Python.com"
print(str.isalnum()) # 判断所有字符都是数字或者字母
print(str.isalpha()) # 判断所有字符都是字母
print(str.isdigit()) # 判断所有字符都是数字
print(str.islower()) # 判断所有字符都是小写
print(str.isupper()) # 判断所有字符都是大写
print(str.istitle()) # 判断所有单词都是首字母大写,像标题
print(str.isspace()) # 判断所有字符都是空白字符、\t、\n、\r
#159、字符串大小写转换
str='Python.com'
print(str.upper()) # 把所有字符中的小写字母转换成大写字母
print(str.lower()) # 把所有字符中的大写字母转换成小写字母
print(str.capitalize()) # 把第一个字母转化为大写字母,其余小写
print(str.title()) # 把每个单词的第一个字母转化为大写,其余小写
#160、计算每个月天数
import calendar
monthRange = calendar.monthrange(2016,9)
print(monthRange)#输出的是一个元组,第一个元素是所查月份的第一天对应的是星期几(0-6),第二个元素是这个月的天数。以上实例输出的意思为 2016 年 9 月份的第一天是星期四,该月总共有 30 天。