# 题目:输出一个随机数。 # 程序分析:使用 random 模块。 import random # 随机数 print(random.uniform(10,20)) # 随机整数 print(random.randint(10,20)) # 1-99间的随机数 print(random.choice([x for x in range(1,100)])) # 将摄氏温度转华氏温度 celsius = float(input(“输入摄氏温度:”)) farenheit = (celsius *1.8) +32 print("%0.1f 摄氏温度转为华氏温度为 %0.1f "%(celsius,farenheit)) 用户输入两个变量,并相互交换 x=input(“输入x值:”) y=input(“输入y值:”) temp=x x=y y=temp print(“交换后x的值为:{}”.format(x)) print(“交换后y的值为:{}”.format(y)) 创建自定义函数 is_number() 方法来判断字符串是否为数字 def is_number(s): try: float(s) return True except ValueError: pass try: import unicodedata unicodedata.numeric(s) return True except (TypeError,ValueError): pass return False print(is_number(“foo”)) print(is_number(“1”)) print(is_number(“1.3”)) print(is_number("-1.37")) print(is_number(“1e3”)) print(is_number(“四”)) 30 个人在一条船上,超载,需要 15 人下船。 于是人们排成一队,排队的位置即为他们的编号。 报数,从 1 开始,数到 9 的人下船。 如此循环,直到船上仅剩 15 人为止,问都有哪些编号的人下船了呢? people = {} for x in range(1,31): people[x] = 1 check = 0 i = 1 j = 0 while i <= 31: if i == 31: i = 1 elif j == 15: break else: if people[i] == 0: i += 1 continue else: check += 1 if check == 9: people[i] = 0 check = 0 print("{}号下船了".format(i)) j += 1 else: i += 1 continue 导入 datetime 模块来获取昨天的日期 import datetime def getYesterday(): today = datetime.date.today() print(today) oneday =datetime.timedelta(days=1) yesterday=today-oneday return yesterday print(getYesterday()) 计算每个月的天数 import calendar monthRange = calendar.monthrange(2019,1) print(monthRange) 输出的第一个元素是所查月份第一天是星期几,第二个时月份对应的天数 字符串的判断 str = “runoob.com” # 数字或者字母 print(str.isalnum()) # 字母 print(str.isalpha()) # 数字 print(str.isdigit()) # 小写 print(str.islower()) # 首字母大写 print(str.istitle()) # 所有字符都是空白字符 print(str.isspace()) # 使用递归的方式来生成斐波那契数列 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)) 生成指定日期的日历 import calendar yy = int(input(“输入年份:”)) mm = int(input(“输入月份:”)) print(calendar.month(yy,mm)) 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 choice = input(“输入你的选择:\n1.加 2.减 3.乘 4.除”) num1=int(input(“输入第一个数字:”)) num2=int(input(“输入第二个数字:”)) if choice == “1”: print(num1,"+",num2,"=",add(num1,num2)) if choice == “2”: print(num1,"-",num2,"=",subtract(num1,num2)) if choice == “3”: print(num1,"*",num2,"=",multiply(num1,num2)) if choice == “4”: print(num1,"/",num2,"=",divide(num1,num2)) 最小公倍数 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)) 最大公约数 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)) 如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。 例如1^3 + 5^3 + 3^3 = 153。 1000以内的阿姆斯特朗数: 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407。 以下代码用于检测用户输入的数字是否为阿姆斯特朗数 num = int(input(“请输入一个数字:”)) 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, “不是阿姆斯特朗数”) 整数的阶乘( num = int(input(“请输入一个数字:”)) factorial = 1 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))