python学习--练习题1、2、3、4、5--
练习1
#利用random函数,生产0-100直接的整数
#方法一: def suijishu(): import random print("{0}".format(int(random.random()*100))) suijishu() #方法二: def suijishu1(): import random print(random.randint(1, 100)) suijishu1()
练习2
#手动引发一个异常
try: print("i love") print(3.1415926) #手动引发一个异常 #注意语法:raise ErrorClassName raise ValueError print("还没完") except NameError as e: print("NameError") except ValueError as e: print("ValueError") except Exception as e: print("我也不知道就出错了") finally: print("我肯定会被执行")
输出结果:
i love
3.1415926
ValueError
我肯定会被执行
体会:手动指定的异常,就会从raise开始,到指定为止,其他不会执行,但fianlly一定执行
练习3
#一个整数,它加上 100 后是一个完全平方数,再加上 268 又是一个完全平方数,请问该数是多少?
#这个是自己写的,但是实在运行太慢了,强烈不建议用好多层跑程序 for i in range(1000): for n in range(1000): for m in range(1000): if i+100==m*m and i+268==n*n: print(i,m,n) continue #参考了别人的写法,这样就快很多,几乎只要几秒钟 import math for i in range(10000): x=int(math.sqrt(i+100)) y=int(math.sqrt(i+268)) if(x*x==i+100)and (y*y==i+268): print (i)
练习4
#输入某年某月某日,判断这一天是这一年的第几天
from datetime import datetime n1=input("please input your date(年-月-日): ") OutPutDay=datetime.strptime(n1,"%Y-%m-%d") m=print(OutPutDay.strftime("NO.%j"))
输出结果:
please input your date(年-月-日): 1989-09-8
NO.251
练习5
#输入三个整数x,y,z,把这个数由大到小输出
import mmap x=int(input("please input 1 number: ")) y=int(input("please input 1 number: ")) z=int(input("please input 1 number: ")) s=[x,y,z] t=sorted(s,reverse=True)#sorted(数列,key=abs,reverse=Ture) print(t)
体会:暂时还不会,一次性输入三个,提取三个数,等后期再调整