天天看點

Python程式設計:從入門到實踐 第七 、八 章 使用者輸入和 while 循環 函數

作者:明政面朝大海春暖花開

以下是一個示例程式,示範了如何使用循環和條件語句來實作使用者輸入和退出功能:

active = True  # 設定一個标志,表示程式是否繼續運作

while active:
    message = input("請輸入您的消息:")
    
    if message == 'quit':
        active = False  # 如果使用者輸入了'quit',将标志設定為False,退出循環
    else:
        print("您輸入的消息是:" + message)
           

在這個示例中,程式會不斷地提示使用者輸入消息,并将使用者輸入的消息列印出來。如果使用者輸入了'quit',則将标志設定為False,退出循環,程式結束運作。

以下是使用 while 循環處理清單和字典的示例代碼:

  1. 在清單之間移動元素:
# 建立兩個清單
list1 = [1, 2, 3, 4]
list2 = []

# 使用 while 循環将 list1 的元素移動到 list2
while list1:
    element = list1.pop()  # 彈出 list1 的最後一個元素
    list2.append(element)  # 添加到 list2 的末尾

print("list1:", list1)  # 輸出:list1: []
print("list2:", list2)  # 輸出:list2: [4, 3, 2, 1]
           
  1. 删除包含特定值的所有清單元素:
# 建立一個包含重複元素的清單
numbers = [1, 2, 3, 4, 3, 5, 3]

# 使用 while 循環删除所有值為 3 的元素
while 3 in numbers:
    numbers.remove(3)

print(numbers)  # 輸出:[1, 2, 4, 5]
           
  1. 使用使用者輸入來填充字典:
# 建立一個空字典
person = {}

# 使用 while 循環擷取使用者輸入并填充字典
while True:
    name = input("請輸入姓名(輸入 'q' 結束):")
    if name == 'q':
        break  # 如果使用者輸入 'q',則結束循環
    age = input("請輸入年齡:")
    person[name] = age

print(person)  # 輸出類似:{'Alice': '25', 'Bob': '32'}
           

這些示例示範了如何使用 while 循環來處理清單和字典,并根據使用者輸入來填充字典。請根據自己的需求進行适當修改和調整。

下面是一個關于Python函數的例子,展示了如何定義函數、傳遞實參、傳回值和結合函數和循環的用法:

# 定義一個函數,接受兩個參數并列印它們的和
def add_numbers(a, b):
    result = a + b
    print("The sum of", a, "and", b, "is", result)

# 調用函數,傳遞位置實參
add_numbers(5, 3)

# 調用函數,傳遞關鍵字實參
add_numbers(b=2, a=7)

# 定義一個帶預設值的函數,并傳回結果
def multiply_numbers(a, b=2):
    result = a * b
    return result

# 調用函數,傳遞一個實參
print(multiply_numbers(4))

# 調用函數,傳遞兩個實參,覆寫預設值
print(multiply_numbers(4, 3))

# 結合函數和循環的例子
def greet(name):
    print("Hello,", name)

# 使用函數和循環列印問候語
names = ['Alice', 'Bob', 'Charlie']
for name in names:
    greet(name)
           

這是一個簡單的示例,展示了函數的基本用法,包括定義函數、傳遞實參、傳回值和結合函數和循環。你可以根據自己的需求擴充和修改這些代碼。

《Python程式設計:從入門到實踐》是一本介紹Python程式設計的書籍,涵蓋了從基礎知識到實際應用的内容。以下是書中涉及的幾個主題和一些示例:

  1. 在函數中修改清單:
  2. 示例代碼:def modify_list(list): list.append('new item') my_list = ['item 1', 'item 2'] modify_list(my_list) print(my_list) # 輸出:['item 1', 'item 2', 'new item']
  3. 禁止函數修改清單:
  4. 示例代碼:def print_list(list): for item in list: print(item) my_list = ['item 1', 'item 2'] print_list(my_list[:]) # 使用切片操作符傳遞清單的副本 print(my_list) # 輸出:['item 1', 'item 2']
  5. 傳遞任意數量的實參:
  6. 示例代碼:def print_arguments(*args): for arg in args: print(arg) print_arguments('arg1', 'arg2', 'arg3') # 輸出: # arg1 # arg2 # arg3
  7. 結合使用位置實參和任意數量實參:
  8. 示例代碼:def print_arguments(arg1, arg2, *args): print(arg1) print(arg2) for arg in args: print(arg) print_arguments('arg1', 'arg2', 'arg3', 'arg4') # 輸出: # arg1 # arg2 # arg3 # arg4
  9. 使用任意數量的關鍵字實參:
  10. 示例代碼:def print_arguments(**kwargs): for key, value in kwargs.items(): print(key, value) print_arguments(arg1='value1', arg2='value2', arg3='value3') # 輸出: # arg1 value1 # arg2 value2 # arg3 value3
  11. 将函數存儲在子產品中:
  12. 示例代碼(module.py):def greet(name): print(f"Hello, {name}!") def farewell(name): print(f"Goodbye, {name}!")
  13. 導入整個子產品:
  14. 示例代碼:import module module.greet('Alice') module.farewell('Bob')
  15. 導入特定的函數:
  16. 示例代碼:from module import greet greet('Alice')
  17. 使用as給函數指定别名:
  18. 示例代碼:from module import greet as hello hello('Alice')
  19. 使用as給子產品指定别名:
  20. 示例代碼:import module as mod mod.greet('Alice')
  21. 導入子產品中的所有函數:
  22. 示例代碼:from module import * greet('Alice') farewell('Bob')

這些示例可以幫助你更好地了解書中的内容和程式設計概念。建議閱讀該書籍以擷取更詳細的解釋和更多的示例。

《Python程式設計:從入門到實踐》是一本介紹Python程式設計的書籍,它涵蓋了從基礎到實踐的内容。以下是書中涉及的一些主題和示例:

1. 建立和使用類:書中介紹了如何建立類,并使用類建立執行個體。例如,可以建立一個名為Dog的類來表示狗,然後根據這個類建立狗的執行個體。

2. 給屬性指定預設值:可以在類中給屬性指定預設值,這樣在建立執行個體時,如果沒有提供該屬性的值,就會使用預設值。

3. 修改屬性的值:可以通過執行個體來修改屬性的值,例如可以修改狗的名字或年齡。

4. 繼承:書中介紹了繼承的概念,可以建立一個子類,并繼承父類的屬性和方法。子類可以添加自己的屬性和方法,還可以重寫父類的方法。

5. 将執行個體用作屬性:可以在類中使用其他類的執行個體作為屬性。例如,在Car類中可以使用Engine類的執行個體作為屬性。

6. 模拟實物:書中介紹了如何使用類來模拟現實世界中的物體。例如,可以建立一個名為Car的類來表示汽車,并添加相關的屬性和方法。

7. 導入類:書中介紹了如何導入單個類、從一個子產品中導入多個類、導入整個子產品以及導入子產品中的所有類。

以上隻是《Python程式設計:從入門到實踐》中涉及的一些主題和示例,書中還有更多内容和執行個體供學習和實踐。如果你需要更詳細的資訊,建議閱讀這本書籍或查閱相關的資料。

當涉及到建立和使用類時,Python程式設計:從入門到實踐是一本很好的參考書籍。以下是一個簡單的例子,展示了如何建立和使用一個類:

# 定義一個名為Car的類
class Car:
    # 初始化方法,用于設定初始屬性
    def __init__(self, make, model, year):
        self.make = make
        self.model = model
        self.year = year
        self.odometer_reading = 0

    # 定義一個方法,用于傳回車輛的描述資訊
    def get_descriptive_name(self):
        full_name = f"{self.year} {self.make} {self.model}"
        return full_name

    # 定義一個方法,用于列印車輛的裡程資訊
    def read_odometer(self):
        print(f"This car has {self.odometer_reading} miles on it.")

    # 定義一個方法,用于更新車輛的裡程資訊
    def update_odometer(self, mileage):
        if mileage >= self.odometer_reading:
            self.odometer_reading = mileage
        else:
            print("You can't roll back an odometer!")

    # 定義一個方法,用于遞增車輛的裡程資訊
    def increment_odometer(self, miles):
        self.odometer_reading += miles

# 建立一個Car執行個體
my_car = Car("Tesla", "Model S", 2022)

# 調用Car類的方法
print(my_car.get_descriptive_name())
my_car.read_odometer()

# 更新車輛的裡程資訊
my_car.update_odometer(100)
my_car.read_odometer()

# 遞增車輛的裡程資訊
my_car.increment_odometer(50)
my_car.read_odometer()
           

這個例子展示了如何建立一個Car類,并使用該類建立一個Car執行個體。類中的方法用于擷取車輛的描述資訊、列印車輛的裡程資訊、更新車輛的裡程資訊以及遞增車輛的裡程資訊。通過調用這些方法,可以操作和管理Car執行個體的屬性和行為。

以下是使用Python程式設計建立Dog類并建立執行個體的示例代碼:

class Dog:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    
    def sit(self):
        print(f"{self.name} is now sitting.")
    
    def roll_over(self):
        print(f"{self.name} rolled over!")

# 建立Dog類的執行個體
my_dog = Dog("Tom", 3)

# 調用執行個體的方法
my_dog.sit()
my_dog.roll_over()
           

在上面的代碼中,我們定義了一個名為Dog的類。該類具有兩個屬性name和age,以及兩個方法sit和roll_over。__init__方法是一個特殊的方法,用于初始化執行個體的屬性。

我們建立了一個名為my_dog的執行個體,将其命名為"Tom",年齡為3歲。然後,我們調用執行個體的sit和roll_over方法,輸出相應的資訊。

你可以根據自己的需要修改類的屬性和方法,并建立多個執行個體來模拟不同的狗。

下面是一些關于Python程式設計中屬性指定預設值、修改屬性的值、繼承、子類的方法__init__()、Python 2.7中的繼承、給子類定義屬性和方法、重寫父類的方法以及将執行個體用作屬性的例子:

  1. 給屬性指定預設值:
class Car:
    def __init__(self):
        self.color = 'red'  # 預設顔色為紅色

my_car = Car()
print(my_car.color)  # 輸出:red
           
  1. 修改屬性的值:
class Car:
    def __init__(self):
        self.color = 'red'  # 預設顔色為紅色

my_car = Car()
my_car.color = 'blue'  # 修改顔色為藍色
print(my_car.color)  # 輸出:blue
           
  1. 繼承:
class Animal:
    def __init__(self, name):
        self.name = name

    def speak(self):
        print(f"{self.name} is speaking.")

class Dog(Animal):
    def __init__(self, name):
        super().__init__(name)

my_dog = Dog("Buddy")
my_dog.speak()  # 輸出:Buddy is speaking.
           
  1. 子類的方法__init__():
class Animal:
    def __init__(self, name):
        self.name = name

class Dog(Animal):
    def __init__(self, name, breed):
        super().__init__(name)
        self.breed = breed

my_dog = Dog("Buddy", "Labrador")
print(my_dog.name)  # 輸出:Buddy
print(my_dog.breed)  # 輸出:Labrador
           
  1. Python 2.7中的繼承:
class Animal(object):  # 繼承自object類
    def __init__(self, name):
        self.name = name

class Dog(Animal):
    def __init__(self, name, breed):
        super(Dog, self).__init__(name)
        self.breed = breed

my_dog = Dog("Buddy", "Labrador")
print(my_dog.name)  # 輸出:Buddy
print(my_dog.breed)  # 輸出:Labrador
           
  1. 給子類定義屬性和方法:
class Animal:
    def __init__(self, name):
        self.name = name

    def speak(self):
        print("Animal is speaking.")

class Dog(Animal):
    def __init__(self, name, breed):
        super().__init__(name)
        self.breed = breed

    def speak(self):
        print(f"{self.name} is barking.")

my_dog = Dog("Buddy", "Labrador")
my_dog.speak()  # 輸出:Buddy is barking.
           
  1. 重寫父類的方法:
class Animal:
    def __init__(self, name):
        self.name = name

    def speak(self):
        print("Animal is speaking.")

class Dog(Animal):
    def __init__(self, name, breed):
        super().__init__(name)
        self.breed = breed

    def speak(self):
        print(f"{self.name} is barking.")

my_dog = Dog("Buddy", "Labrador")
my_dog.speak()  # 輸出:Buddy is barking.
           
  1. 将執行個體用作屬性:
class Engine:
    def __init__(self, horsepower):
        self.horsepower = horsepower

class Car:
    def __init__(self, make, model, engine):
        self.make = make
        self.model = model
        self.engine = engine

    def get_engine_horsepower(self):
        return self.engine.horsepower

my_engine = Engine(200)
my_car = Car("Toyota", "Camry", my_engine)
print(my_car.get_engine_horsepower())  # 輸出:200
           

這些例子展示了Python程式設計中屬性指定預設值、修改屬性的值、繼承、子類的方法__init__()、Python 2.7中的繼承、給子類定義屬性和方法、重寫父類的方法以及将執行個體用作屬性的用法。希望對你有幫助!

關于Python程式設計中類和執行個體的用法的例子。以下是一個關于汽車的類和執行個體的示例代碼:

class Car:
    """汽車類"""

    def __init__(self, make, model, year):
        """初始化汽車屬性"""
        self.make = make
        self.model = model
        self.year = year
        self.odometer_reading = 0

    def get_descriptive_name(self):
        """傳回汽車的描述性名稱"""
        full_name = f"{self.year} {self.make} {self.model}"
        return full_name

    def read_odometer(self):
        """列印汽車的裡程表讀數"""
        print(f"This car has {self.odometer_reading} miles on it.")

    def update_odometer(self, mileage):
        """
        更新汽車的裡程表讀數
        禁止回調裡程表讀數
        """
        if mileage >= self.odometer_reading:
            self.odometer_reading = mileage
        else:
            print("You can't roll back an odometer!")

    def increment_odometer(self, miles):
        """将裡程表讀數增加指定的英裡數"""
        self.odometer_reading += miles


# 建立一個Car類的執行個體
my_car = Car("Audi", "A4", 2021)

# 通路執行個體的屬性
print(my_car.make)  # 輸出:Audi
print(my_car.model)  # 輸出:A4
print(my_car.year)  # 輸出:2021

# 調用執行個體的方法
print(my_car.get_descriptive_name())  # 輸出:2021 Audi A4

# 修改屬性的值
my_car.odometer_reading = 1000
my_car.read_odometer()  # 輸出:This car has 1000 miles on it.

# 使用方法修改屬性的值
my_car.update_odometer(1500)
my_car.read_odometer()  # 輸出:This car has 1500 miles on it.

# 使用方法增加屬性的值
my_car.increment_odometer(500)
my_car.read_odometer()  # 輸出:This car has 2000 miles on it.
           

這個例子中,我們建立了一個名為Car的類,它表示汽車。類中的__init__方法用于初始化汽車的屬性,包括制造商(make)、型号(model)、年份(year)和裡程表讀數(odometer_reading)。類中還定義了一些方法,比如擷取描述性名稱的方法get_descriptive_name、列印裡程表讀數的方法read_odometer、更新裡程表讀數的方法update_odometer和增加裡程表讀數的方法increment_odometer。

在示例代碼中,我們建立了一個Car類的執行個體my_car,并通路了它的屬性和調用了它的方法。我們還示範了如何直接修改屬性的值以及使用方法修改和增加屬性的值。