元组中的元素是无法修改的,尤其是在多线程环境中,我们更喜欢用不变对象(一方面是因为对象状态不能修改,所以可以避免由此引起的不必要的程序错误;另一方面因为没有任何一个线程能修改不变对象的内部状态,一个不变对象自动就是线程安全的)。
元组在创建时间和占用的空间上面都优于列表。可以使用==sys模块==的==getsizeof函数==来检查存储同样的元素的元组和列表各自占用了多少内存。
2、计算指定的年月日是这一年的第几天
def is_leap_year(year):
return year % 4 == 0 and year % 100 != 0 or year % 400 == 0
def which_year(year,month,date):
days_of_month=[[31,28,31,30,31,30,31,31,30,31,30,31],[31,29,31,30,31,30,31,31,30,31,30,31]][is_leap_year(year)]
'''
is_leap_year返回布尔值,True==1,False==0
在days_of_month中为list[0],list[1]
'''
total=0
for index in range(month-1):
total+=days_of_month[index]
return total+date
def main():
print(which_year(2019,10,10))
if __name__ == '__main__':
main()
3、杨辉三角
def main():
num=int(input('number of rows='))
yh=[[]]*num
for row in range(len(yh)):
yh[row]=[None]*(row+1)
for col in range(len(yh[row])):
if col == 0 or col == row:
yh[row][col]=1
else:
yh[row][col]=yh[row-1][col]+yh[row-1][col-1]
print(yh[row][col],end='\t')
print()
if __name__=='__main__':
main()