三、函数、时间格式化

发布时间 2023-12-25 13:53:43作者: 紫蕈

1.函数

2.时间格式化

 

 

1.函数

#不可变对象实例:数字、字符串、元组,如数字,变量赋值 a=5 后再赋值 a=10,这里实际是新生成一个 int 值对象 10,再让 a 指向它,而 5 被丢弃,不是改变 a 的值,相当于新生成了 a。
#可变对象实例:列表、集合、字典 ,如变量赋值 la=[1,2,3,4] 后再赋值 la[2]=5 则是将 list la 的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了

 

①python 传不可变对象实例

def change(a):
print(id(a)) # 指向的是同一个对象
a=20
print(id(a)) #指向一个新对象
a=10
print(id(a))
change(a)
print(id(a))

'''
2247976026640
2247976026640
2247976026960
2247976026640
'''

 

②python 传可变对象实例

def change1(mylist):
mylist1.append([4,5,6]) #append() 添加元素
print('函数内取值',mylist1) #[1, 2, 3, [4, 5, 6]]
mylist1=[1,2,3]
change1(mylist1)
print('函数外取值:',mylist1) #[1, 2, 3, [4, 5, 6]]

#参数:①必需参数 ②关键字参数 ③默认参数 ④不定长参数
#①必需参数
'''
def printf(str):
print(str)
printf() #没有传递参数,报错
'''


#②关键字参数
def printf1(str):
print(str)
printf1(str='hello')

def person(name,age):
print('name=',name)
print('age=',age)
person(age=15,name='Sam') #函数参数的使用不需要使用指定顺序

 

③默认参数

def per(name,age=30):
print('name=',name)
print('age=',age)
return
per(name='Kate',age=15) #name= Tim age= 15 传了age,使用传的参数age
print('-----------')
per(name='Tim') #name= Tim age= 30 没传age,使用默认的age


④不定长参数

def printinfo(arg1,*vartuple ): # 加了星号 * 的参数会以元组(tuple)的形式导入,存放所有未命名的变量参数
print('arg1=',arg1) #arg1= 4
print('vartuple =',vartuple ) #arg2= (5, 6)
printinfo(4,5,6)


def printinfo(arg1,*vartuple ): # 加了星号 * 的参数会以元组(tuple)的形式导入,存放所有未命名的变量参数
print('arg1=',arg1) #arg1= 4
for i in vartuple:
print(i)
printinfo(4) #如果在函数调用时没有指定参数,它就是一个空元组。我们也可以不向函数传递未命名的变量
printinfo(4,5,6)


def printinfo(arg1,**vardict): # 加了两个星号 ** 的参数会以字典的形式导入
print('arg1=',arg1) #arg1= 1
print('vardict =',vardict ) #vardict = {'a': 2, 'b': 3}
printinfo(1, a=2,b=3)

 

 

2.时间格式化

时间格式化:
print(time.time())    #如:1696822590.5395648
print(time.localtime(time.time()))       #如:time.struct_time(tm_year=2023, tm_mon=10, tm_mday=9, tm_hour=11, tm_min=36, tm_sec=30, tm_wday=0, tm_yday=282, tm_isdst=0)
print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))       #如:2023-10-09 11:36:30


import datetime
#输入今日日期 datetime.date.today()
print(datetime.date.today().strftime('%Y-%m-%d')) #2023-10-12

#创建日期对象 datetime.date(2020,5,13)
myBirthday=datetime.date(2020,5,13)
print (myBirthday) #2020-05-13
print (myBirthday.strftime('%d/%m/%y')) #13/05/20
print (myBirthday.strftime('%d/%m/%Y')) #13/05/2020
print(datetime.timedelta(days=1)) #1 day, 0:00:00
# 日期算术运算
date1=myBirthday+datetime.timedelta(days=1)
print(date1)
#日期替换
myBirthday.replace(month=myBirthday.month+1) #2020-05-14
print(myBirthday.strftime('%y/%m/%d')) #20/05/13