练习4:
题目:输入某年某月某日,判断这一天是这一年的第几天?
程序分析: 某年某月某日是通过输入获取,年需要判断是不是闰年;月份的判断可以让月份之前的月份天数成为固定数字;某日则是最后添加。
代码:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
year=int(raw_input("年:\n"))
month=int(raw_input("月:\n"))
day=int(raw_input("日:\n"))
months1=[0,31,60,91,121,152,182,213,244,274,305,335,366] #闰年
months2=[0,31,59,90,120,151,181,212,243,273,304,334,365] #平年
if ((year%4==0)and(year%100!=0)) or((year%100==0)and(year%400==0)):
Dth=months1[month-1]+day
else:
Dth=months2[month-1]+day
print "是该年的第%d天"%Dth
练习5:
题目:输入三个整数x,y,z,请把这三个数由小到大输出。
程序分析:这个就是一个排序问题
代码:
#冒泡排序
a = [int(i) for i in raw_input("请输入:").split()]
m = len(a)
while m!=1:
for i in range(m-1):
if a[i]>a[i+1]:
x = a[i]
a[i] = a[i+1]
a[i+1] = x
m -= 1print a
#列表sort
l = [int(i) for i in raw_input("请输入: ").split()]
l.sort()
print l
练习6:
题目:斐波那契数列。
程序分析:斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……。
在数学上,费波那契数列是以递归的方法来定义:
F0 = 0 (n=0)
F1 = 1 (n=1)
Fn = F[n-1]+ F[n-2](n=>2)
代码:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
def fib(n):
a,b = 1,1
for i in range(n-1):
a,b = b,a+b
return a
# 输出了第10个斐波那契数列
print fib(10)
#第二种方法 使用递归
def fib(n):
if n==1 or n==2:
return 1
return fib(n-1)+fib(n-2)
# 输出了第10个斐波那契数列
print fib(10)
#第三种方法 输出指定个数的斐波那契数列
def fib(n):
if n == 1:
return [1]
if n == 2:
return [1, 1]
fibs = [1, 1]
for i in range(2, n):
fibs.append(fibs[-1] + fibs[-2])
return fibs
# 输出前 10 个斐波那契数列
print fib(10)
2018年2月24日---记!
网友评论