python基礎知識(四)

2021-08-14 10:24:42 字數 4432 閱讀 4365

函式 基本形式:

def greet():

print("hello")

greet()

#輸出結果:hello

傳遞引數:

def greet(name):

print("hello " + name)

greet("xiao ming")

#輸出結果:hello xiao ming

形參與實參:

形參是函式引數列表中宣告的引數

實參是實際傳遞的引數

位置實參

按位置傳遞引數:

def greet(name, msg):

print(name + " says " + msg)

greet("xiao ming", "hello python")

#輸出結果:xiao ming says hello python

關鍵字實參:

def greet(name, msg):

print(name + " says " + msg)

greet(name="xiao ming", msg="hello python")

#輸出結果:xiao ming says hello python

預設值預設值必須放在引數列表中的最後

def greet(msg, name="xiao ming"):

print(name + " says " + msg)

greet("hello python")

返回值def greetwords(msg, name="xiao ming"):

return name + " says " + msg

print(greetwords("hello"))

#輸出結果:xiao ming says hello

返回字典

def debuginfo():

return

print(debuginfo())

#輸出結果:

傳遞列表

在函式中可以修改列表的值:

def modify(names):

names[0] = 'xiao ming'

names = ['lily', 'mick']

modify(names)

print(names)

#輸出結果:['xiao ming', 'mick']

禁止修改列表:

def modify(names):

names[0] = 'xiao ming'

names = ['lily', 'mick']

modify(names[:])

print(names)

#輸出結果:['lily', 'mick']

變參函式

def output(*names):

print(names)

for name in names:

print(name)

output('lily', 'mick')

使用任意數量的實參

def print_debuginfo(**debug_info):

for key,value in debug_info.items():

print(key + ":" + value)

print_debuginfo(level='debug', msg='file not found')

#輸出結果:

level:debug

msg:file not found

將函式儲存在模組中

匯入整個模組

檔名即為模組

import module_name

使用時用點訪問函式名字

module_name.function_name

匯入特定函式

單個函式

from module_name import function_name

多個函式用逗號隔開

from module_name import function_0, function_1, function_2

as給函式指定別名

from module_name import function_name as other_function_name

匯入模組中所有函式

from module import *

直接使用函式,無需指定模組名字

類 class dog():

# 構造方法

def __init__(self, name, age):

self.name = name

self.age = age

def sit(self):

print(self.name.title() + " is now sitting.")

def roll_over(self):

print(self.name.title() + " rolled over!")

建立例項        

my_dog = dog('willie', 6)

訪問屬性

print("my dog's name is " + my_dog.name.title() + ".") 

呼叫方法

my_dog.sit()

繼承class flydog(dog): #括號中指定基類

def __init__(self, name, age, mile):

super().__init__(name, age)  # 用super()指定基類

self.mile = mile

# 重寫父類方法    

def sit(self):

print(self.name.title() + " is now sitting in the air")

my_dog = flydog('willie', 6, 10)

my_dog.sit()

匯入類匯入單個類

建立乙個包含car類的模組,命名為car.py,另乙個包匯入它:

from car import car

匯入多個類

from module import class1 class2

匯入整個模組

import car

使用時需要指定car

car.classname

匯入所有類

from module_name import *

使用時無需指定模組名

檔案和異常 讀檔案

讀取整個檔案:

with open('hello.py') as file_object:

contents = file_object.read()

print(contents)

關鍵字with在不需要訪問檔案後將其關閉。

逐行讀取

with open('hello.py') as file_object:

for line in file_object:

print(line)

讀取到列表

with open('hello.py') as file_object:

lines = file_object.readlines()

for line in lines:

print(line)

寫檔案with open('hello.txt', 'w') as file_object:

file_object.write('hello python')

附加到檔案

with open('hello.txt', 'a') as file_object:

file_object.write('hello go')

異常try:

print(1/0)

except zerodivisionerror:

print("you can't divide by zero!")

使用else

try:

print(3/2)

except zerodivisionerror:

print("you can't divide by zero!")

else:

print('ok')

使用pass

try:

print(3/2)

except zerodivisionerror:

pass

else:

print('ok')

處理json import json

data =

file_name = 'test.jon'

with open(file_name, 'w') as f_obj:

json.dump(data, f_obj)

with open(file_name) as f_obj:

data = json.load(f_obj)

print(data)

python基礎知識(四)

關於編碼的問題 in python3中 對於英文 數字 utf8 1個bytes 位元組 對於乙個字元 對於中文 unicode 3個bytes 位元組 對應乙個字元 encode 編碼 將unicode形式轉化為utf 8等其他形式 decode 解碼 將utf 8等其他形式轉化為unicode形...

python基礎知識 四 函式

def 函式名 pass 區域性變數和全域性變數 var 1 def fun print var var 200 print fun 函式fun 中給var賦值,說明var已經不是全域性變數了,所以在賦值之前想輸出var是錯誤的。globals是宣告全域性變數,globals 是輸出全域性變數 re...

Python基礎知識學習(四)

1 遍歷列表 list1 今天 天氣很好 123 456 abc xyz for x in list1 print x 輸出結果 今天 天氣很好 123 456 abc xyz 接下來,我們進一步遍歷 注意 這種方法只能適用於 元素的格式和數量都相同時 以這段 為例,上次遍歷之後格式都為 x,y 所...