Python 习题
1、输入某年某月某日,判断这一天是这一年的第几天?
leap_year = [31,29,31,30,31,30,31,31,30,31,30,31]#闰年 common_year = [31,28,31,30,31,30,31,31,30,31,30,31]#平年 year = int(input("type the year:")) month = int(input("type the month:")) day = int(input("type the day:")) sum = 0 if (year%4==0) and (year%100!=0) or (year%400==0): for i in range(0,month-1): sum +=leap_year[i] print("it's the {}th day".format(sum+day)) else: for i in range(0,month-1): sum +=common_year[i] print("it's the {}th day".format(sum+day))
2、输入三个整数x,y,z,请把这三个数由小到大输出。
x = int(input("type a number:")) y = int(input("type a number:")) z = int(input("type a number:")) print(sorted([x,y,z]))
3、九九乘法表。
for i in range(1,10):
for j in range(1,i+1): print("{}*{}={}\t".format(i,j,i*j),end="") print()
4、暂停一秒输出。
import time import random for i in range(10): print(i) time.sleep(random.randint(0,9))
5、找出10000以内的完美数。
def f(x): return x==sum([i for i in range(1,x) if x%i==0]) B = [i for i in range(10000) if f(i)] print(B)
6、生成斐波拉契数列前20个数.
"""从第三项开始,每一项等于前面两项之和:f(n)=f(n-1)+f(n-2)""" def fib(n): if n<=1: return n return (fib(n-1)+fib(n-2)) for i in range(20): print(fib(i),end=" ")
7、找出100以内所有素数。
for num in range(1,101): if num > 1: for i in range(2,num): if (num % i) == 0: break else: print(num,end=" ")
8、正整数反转。
def f(n): return int(str(n)[::-1])
9:最大公约数和最小公倍数。
def f(x,y): """找到最小数""" if x>y: x,y = y,x """0<最大公约数<min(x,y)""" for i in range(x,0,-1): if x%i==0 and y%i==0: print("{},{}最大公约数是:{}".format(x,y,i)) """最小公倍数=x*y//最大公约数""" print("{},{}最小公倍数是:{}".format(x,y,x*y//i)) break x =int(input("x=")) y =int(input("y=")) f(x,y)
10、机选彩票。
from random import sample, randint #双色球号码看做一个列表:[03 13 16 17 20 23 | 13] def display(balls): for index, ball in enumerate(balls): if index == len(balls)-1: print("|", end=" ") # %02d:输出2位整数,右对齐。不够位数,左边补0 print("%02d" %ball, end=" ") #换行 print() def random_select(): red_balls = [x for x in range(34)]#红色球号码池 #sample(L,n):表示从序列L中选择6个不重复元素,以list形式返回结果。 select_ball = sample(red_balls,6) select_ball.sort() select_ball.append(randint(1,16)) return select_ball def main(): n = int(input("选多少注彩票:")) for i in range(n): display(random_select())
main()
11、跑马灯。
import os import time def main(): content = '北京欢迎你为你开天辟地…………' while True: # 清理屏幕上的输出 os.system('cls') print(content) time.sleep(0.2) #跑马灯格式 content = content[1:] + content[0] main()
12、时钟。
from time import sleep class Clock(): #时钟的三个属性:hour,minute,second,同时设置默认值=0 def __init__(self,hour=0,minute=0,second=0): self.hour = hour self.minute = minute self.second = second #时钟的进制换算 def run(self): self.second +=1 if self.second==60: self.second=0 self.minute +=1 if self.minute==60: self.minute=0 self.hour+=1 if self.hour==24: self.hour=0 def show(self): return "%02d:%02d:%02d" %(self.hour, self.minute, self.second) def main(): clock = Clock() while True: print(clock.show()) sleep(1) clock.run() main()
13、计算平面上一个点到另一个点的距离,利用x,y坐标轴。
from math import sqrt class Dot: def __init__(self,x0=0,y0=0): self.x0 =x0 self.y0 =y0 def move_to(self,x1,y1): self.x1=x1 self.y1=y1 def distance(self): return sqrt((self.x1-self.x0)**2+(self.y1-self.y0)**2) def main(): dot = Dot() dot.move_to(3,4) print(dot.distance()) main()