第四题~
输入某年某月某日,判断这一天是这一年的第几天
思路很清晰,先判断这个月前面的几个月天数之和,再加上这个月的天数就行了。注意闰年。
上代码
'''
输入某年某月某日,判断这一天是这一年的第几天
'''
year = int(input('请输入年:'))
month = int(input('请输入月:')) - 1
day = int(input('请输入日:'))
days = [31,28,31,30,31,30,31,31,30,31,30,31]
total_day = 0
for i in range(month):
total_day += days[i]
if year % 4 == 0 and month > 2:
total_day += 1
print(total_day + day)
第五题~
输入三个整数x,y,z,请把这三个数由小到大输出
思路及其明确,让这三个进列表,sort一下就完了
'''
输入三个整数x,y,z,请把这三个数由小到大输出
'''
x = input('请输入x')
y = input('请输入y')
z = input('请输入z')
a = []
a.append(x)
a.append(y)
a.append(z)
a.sort()
print(a)
coding过程中我发现个好玩的事,a = a.sort()
运行以后发现输出了一个none,我:???
查了方法以后才发现,那个a =是多余的,直接a.sort()就可以了,但是none是哪来的呢
查了资料以后我发现,这些类似的方法,比如sort,append这些都是没有返回值的,就相当于返回了一个none,然后我这里再赋值给a,所以就会输出none了啦
第六题~
斐波那契数列
老经典算法了,不多说,直接上代码
'''
斐波那契数列
'''
times = int(input('请问要前几项呢'))
list = []
a = 0
b = 1
for i in range(times):
list.append(a)
a, b = b, a + b
print(list)
第七题~
将一个列表的数据复制到另一个列表中
这方法可多了去了,不多说,直接上代码~
'''
将一个列表的数据复制到另一个列表中
'''
b = []
a = [0,1,2,3,4,5,6,7,8,9]
b = a
print(b)
一点点小拓展~
列表复制的方法其实是有两种的,一种叫浅复制,一种叫深复制
这两种方法的区别在哪呢?来,上代码
a = []
b = [1,2,3]
#浅复制
a = b[:]
print(id(a))
#深复制
a = b
print(id(a))
print(id(b))
从这里基本就可以看得出差别了
接下来有个小问题,如果我这样输出结果会怎么样呢
A = ['apple']
B = A
B[0] = 'banana'
print(A)
正确答案是 banana,因为这是深复制,AB一体了都,改变其中一个两个都得变
今天就到此为止吧~