用戶輸入
- 函數input()讓程序暫停運行,等待用戶輸入一些文本。獲取用戶輸入後,Python可將其存儲在一個變量中,以方便使用。使用函數input()時,Python將用戶輸入解讀爲字符串
message = input("Tell me something, and I will repeat it back to you: ") print(message) >>>Tell me something, and I will repeat it back to you: Hello everyone!Hello everyone! prompt = "If you tell us who you are, we can personalize the messages you see." prompt += "\nWhat is your first name? " name = input(prompt)
- 函數int(),它讓Python將輸入視爲數值。函數int()將數字的字符串表示轉換爲數值表示
函數
- 調用函數時,Python必須將函數調用中的每個實參都關聯到函數定義中的一個形參。爲此,最簡單的關聯方式是基於實參的順序。這種關聯方式被稱爲位置實參。
def describe_pet(animal_type, pet_name): """顯示寵物的信息""" print("\nI have a " + animal_type + ".") print("My " + animal_type + "'s name is " + pet_name.title() + ".") describe_pet('hamster', 'harry') describe_pet('dog', 'willie')
- 關鍵字實參是傳遞給函數的名稱—值對。你直接在實參中將名稱和值關聯起來了,因此向函數傳遞實參時不會混淆(不會得到名爲Hamster的harry這樣的結果)。關鍵字實參讓你無需考慮函數調用中的實參順序,還清楚地指出了函數調用中各個值的用途。
def describe_pet(animal_type, pet_name): """顯示寵物的信息""" print("\nI have a " + animal_type + ".") print("My " + animal_type + "'s name is " + pet_name.title() + ".") describe_pet(animal_type='hamster', pet_name='harry')
- 默認值
def describe_pet(pet_name, animal_type='dog'): """顯示寵物的信息""" print("\nI have a " + animal_type + ".") print("My " + animal_type + "'s name is " + pet_name.title() + ".") describe_pet(pet_name='willie')
- 返回值
函數並非總是直接顯示輸出,相反,它可以處理一些數據,並返回一個或一組值。函數返回的值被稱爲返回值。在函數中,可使用return語句將值返回到調用函數的代碼行。 - 傳遞列表
def greet_users(names): """向列表中的每位用戶都發出簡單的問候""" for name in names: msg = "Hello, " + name.title() + "!" print(msg) usernames = ['hannah', 'ty', 'margot'] greet_users(usernames)
類
- 根據類來創建對象被稱爲實例化
定義了一個名爲Dog的類。根據約定,在Python中,首字母大寫的名稱指的是類。這個類定義中的括號是空的,因爲我們要從空白創建這個類。在處,我們編寫了一個文檔字符串,對這個類的功能作了描述。
```python
class Dog():
"""一次模擬小狗的簡單嘗試"""
def __init__(self, name, age):
"""初始化屬性name和age"""
self.name = name
self.age = age
```
- 方法__init__()
類中的函數稱爲方法;每當你根據Dog類創建新實例時,Python都會自動運行它;上述方法__init__()定義成了包含三個形參:self、name和age。在這個方法的定義中,形參self必不可少,還必須位於其他形參的前面。
形參self的作用
Python調用這個__init__()方法來創建Dog實例時,將自動傳入實參self。每個與類相關聯的方法調用都自動傳遞實參self,它是一個指向實例本身的引用,讓實例能夠訪問類中的屬性和方法
self.name = name獲取存儲在形參name中的值,並將其存儲到變量name中,然後該變量被關聯到當前創建的實例 - 類的調用
class Dog(): --snip-- my_dog = Dog('willie', 6) my_dog.sit() my_dog.roll_over()
- 繼承
創建子類的實例時,Python首先需要完成的任務是給父類的所有屬性賦值。爲此,子類的方法__init__()需要父類施以援手。
(1)創建子類時,父類必須包含在當前文件中,且位於子類前面
(2)我們定義了子類ElectricCar。定義子類時,必須在括號內指定父類的名稱
(3)方法__init__()接受創建Car實例所需的信息
(4)super()是一個特殊函數,幫助Python將父類和子類關聯起來。這行代碼讓Python調用ElectricCar的父類的方法__init__(),讓ElectricCar實例包含父類的所有屬性。父類也稱爲超類(superclass),名稱super因此而得名 - 重寫父類的方法
有一個名爲fill_gas_tank()的方法.Python將忽略Car類中的方法fill_gas_tank(),轉而運行上述代碼。使用繼承時,可讓子類保留從父類那裏繼承而來的精華,並剔除不需要的糟粕。
文件和異常
with open('pi_digits.txt') as file_object:
contents = file_object.read()
print(contents.rstrip())
Python方法rstrip()刪除(剝除)字符串末尾的空白
with open('text_files/filename.txt') as file_object:
逐行讀取
filename = 'pi_digits.txt'
with open(filename) as file_object:
for line in file_object:
print(line)