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)

体会:暂时还不会,一次性输入三个,提取三个数,等后期再调整


posted @ 2019-03-10 17:04  ttkk89  阅读(344)  评论(0编辑  收藏  举报