日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python教育学_跟着老男孩教育学Python开发【第三篇】:Python函数

發布時間:2025/3/15 python 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python教育学_跟着老男孩教育学Python开发【第三篇】:Python函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

set

無序,不重復,可嵌套。

函數

創建函數:

1、def關鍵字,創建函數

2、函數名

3、()

4、函數體

5、返回值

發郵件函數def sendmail():

import smtplib

from email.mime.text import MIMEText

from email.utils import formataddr

#三個參數:第一個為文本內容,第二個 plain 設置文本格式,第三個 utf-8 設置編碼

msg = MIMEText(‘郵件內容‘,‘plain‘,‘utf-8‘)

msg[‘From‘] = formataddr(["發件人名稱",‘發件人郵箱‘])

msg[‘To‘] = formataddr(["哈哈",‘收件人郵箱‘])

msg[‘Subject‘] = "郵件主題"

server = smtplib.SMTP("smtp地址",端口)

#需要在開啟SMTP,否則發送失敗

server.login("發件人郵箱","密碼")

server.sendmail(‘發件人郵箱‘,[‘收件人郵箱‘],msg.as_string())

server.quit()

sendmail()

函數中的returndef f1():

print(123)

#在函數中,一旦執行return,函數執行過程立即終止

return "111"

print(456)

r = f1()

print(r)

函數的默認返回值Nonedef f2():

print(123)

r = f2()

print(r)

普通參數#形參【形式參數】:xx

def sendmail(xx,content):

import smtplib

from email.mime.text import MIMEText

from email.utils import formataddr

#捕獲異常

try:

msg = MIMEText(content,‘plain‘,‘utf-8‘)

msg[‘From‘] = formataddr(["Golden",‘發件人地址‘])

msg[‘To‘] = formataddr(["哈哈",‘收件人地址‘])

msg[‘Subject‘] = "主題"

server = smtplib.SMTP("smtp.126.com",25)

server.login(‘發件人地址‘,‘密碼‘)

server.sendmail(‘發件人地址‘,[xx],msg.as_string())

server.quit()

except:

#發送失敗

return False

else:

#發送成功

return True

#實際參數:收件人1\收件人2

# ret = sendmail("收件人1")

# ret = sendmail("收件人2")

while True:

em = input("請輸入收件人郵箱地址:")

result = sendmail(em,"你好")

if result == True:

print("發送成功")

else:

print("發送失敗")

默認參數def send(xx,content,hh="ok"):

print(xx,content,hh)

print("發送郵件成功:",xx,content)

return True

send("hahaha",‘hello‘)

send("hahaha",‘hello‘,‘bbbb‘)

注意:如果需要給某個參數指定默認值,該參數必須放在參數列表的最后。

指定參數def send(xx,content):

print(xx,content)

return True

send("hahaha","hello")

send(content="hahaha",xx="hello")

動態參數:*def f1(*args):

print(args,type(args))

f1(11,22,33,"haha","hello")

li = [12,23,33,"hahaha","hi"]

f1(li)

f1(*li)

注意:*默認將傳入的參數全部放置在元組中,f1(*li)。

動態參數:字典(**)def f1(**args):

print(args,type(args))

f1(n1="alex",kk=18)

dic = {‘k1‘:‘v1‘,‘k2‘:‘v2‘}

f1(**dic)

注意:**默認將傳入的參數全部放置在字典中,f1(**dic)。

萬能參數def f1(*args,**kwargs):

print(args)

print(kwargs)

f1(11,22,33,44,k1=‘v1‘,k2=‘v2‘)

注意:*args,**kwargs順序不能改變。

動態參數實現format功能s = "i am {0},age {1}".format("alex",18)

print(s)

s1 = "i am {0},age {1}".format(*["alex",19])

print(s1)

s2 = "i am {name},age {age}".format(age=20,name=‘alex‘)

print(s2)

dic ={‘name‘:‘alex‘,‘age‘:21}

s3 = "i am {name},age {age}".format(**dic)

print(s3)

猜一猜輸出def f1(a1,a2):

print(‘+‘)

return a1 + a2

def f1(a1,a2):

print(‘*‘)

return a1 * a2

ret = f1(8,8)

print(ret)

def f1(a1):

a1.append(999)

li = [11,22,33,44]

f1(li)

print(li)

注意:函數參數傳遞的是引用。

全局變量NAME = "alex"

AGE = 22

def f1():

num = 18

NAME = "haha"

#修改全局變量:age

global AGE

AGE = 25

print(num,AGE,NAME)

def f2():

num = 19

print(num,AGE,NAME)

f1()

f2()

注意:全局變量重新賦值需要用global,對于列表或字典,可修改,不可重新賦值。定義全局變量全部大寫。

函數實現登錄與注冊def login(username,password):

"""

用于用戶登錄

:param username: 用戶輸入的用戶名

:param password: 用戶輸入的密碼

:return:True,登錄成功;False,登錄失敗

"""

f = open("db",‘r‘)

#逐行讀取

for line in f:

#用"|"進行分割

line_list = line.strip().split("|")

#匹配是否正確

if line_list[0] == username and line_list[1] == password:

return True

return False

def register(username,password):

"""

用戶注冊

:param username:用戶名

:param password:密碼

:return:默認返回None

"""

f = open("db",‘a‘)

temp = "\n"+username + "|" + password

f.write(temp)

f.close()

def main():

t = input("1:登錄;2:注冊")

if t == "1":

user = input("請輸入用戶名:")

pwd = input("請輸入密碼:")

r = login(user,pwd)

if r:

print("登錄成功")

else:

print("登錄失敗")

elif t == "2":

user = input("請輸入用戶名:")

pwd = input("請輸入密碼:")

register(user,pwd)

main()

三元運算(三目運算)if 1 == 1:

name = "alex"

else:

name = "golden"

#上面代碼等價于

name = "alex" if 1 == 1 else "golden"

lambda表達式def f1(a1):

return a1 + 100

#等價上面的代碼

f2 = lambda a1:a1 + 100

ret = f1(10)

print(ret)

r2 = f2(9)

print(r2)

內置函數#abs():取絕對值

n = abs(-1)

print (n)

#all():所有為真,才為真

#any():任何一個為真,就是真

n = all([1,2,3,4,[]])

print(n)

n2 = any([1,[],0,"",None])

print(n2)

#ascii():自動執行對象的 _repr_方法

class Foo:

def _repr_(self):

return "111"

n = ascii(Foo())

print(n)

#bin():轉二進制

#oct():轉八進制

#hex():轉十六進制

print(bin(5))

print(oct(9))

print(hex(15))

#utf-8 一個漢字:三個字節

#gbk 一個漢字:二個字節

#utf-8,一個字節八位,一個漢字三個字節

s = "李杰"

#字符串轉換字節類型

#bytes(需要轉換的字符串,按照什么編碼)

n = bytes(s,encoding="utf-8")

print(n)

n = bytes(s,encoding="gbk")

print(n)

#字節轉化成字符串

new_str = str(bytes("李杰",encoding="utf-8"),encoding="utf-8")

#1、打開文件

#只讀

f = open(‘db‘,‘r‘)

#只寫,先清空源文件

f = open(‘db‘,‘w‘)

#文件存在,報錯;不存在,創建并寫內容

f = open(‘db‘,‘x‘)

#追加

f = open(‘db‘,‘a‘)

#2、操作文件

#通過源碼查看功能

f.read()

f.write()

#3、關閉文件

f.close()

with open(‘db‘) as f:

pass

f = open(‘db‘,‘r‘,encoding="GBK")

#f = open(‘db‘,‘r‘,encoding="utf-8")

data = f.read()

print(data,type(data))

f.close()

f = open("db","r+",encoding="utf-8")

#如果打開模式無b,則read,按照字符讀取

data = f.read()

#獲取當前指針的位置(字節)

print(f.tell())

print(data)

#移動當前指針到固定位置(字節)

f.seek(1)

#當前指針位置開始向后覆蓋

f.write("777")

f.close()

f = open(‘db‘,‘rb‘)

data = f.read()

print(data,type(data))

f = open(‘db‘,‘ab‘)

f.write(bytes("李杰",encoding="utf-8"))

f.close()

flush()強刷:f = open("db",‘a‘)

f.write("123")

#強制寫入

f.flush()

input("adsdds")

readable()查看文件是否可讀,返回True或False。f = open("db",‘w‘)

print(f.readable())

readline()僅讀取一行數據,當文件特別大的時候不至于導致內存撐爆。f = open("db",‘r‘)

f.readline()

f.readline()

truncate()截斷,指針后面的數據清空f = open("db",‘r+‘,encoding="utf-8")

f.seek(3)

f.truncate()

f.close()

for循環打開的文件對象:f = open("db",‘r‘)

for line in f:

print(line)

f.close()

將文件1的前十行寫入文件2:with open(‘db1‘,‘r‘,encoding="utf-8") as f1,open(‘db2‘,‘w‘,encoding="utf-8") as f2:

times = 0

for line in f1:

times += 1

if times <= 10:

f2.write(line)

else:

break

將文件的某個字符串進行替換:with open(‘db1‘,‘r‘,encoding="utf-8") as f1,open("db2",‘w‘,encoding="utf-8") as f2:

for line in f1:

new_str = line.replace("alex","st")

f2.write(new_str)

原文:http://www.cnblogs.com/yinshoucheng-golden/p/6116758.html

總結

以上是生活随笔為你收集整理的python教育学_跟着老男孩教育学Python开发【第三篇】:Python函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。