python如何去掉方括号_python从入门到实战外星人入侵
## 第一章 軟件安裝與簡單操作
## 第二章 字符串操作總結
- 方法
方法是Python可對數據執行的操作。每個方法后面都跟著一對括號,這是因為方法通常需要額外的信息來完成,這種信息是在括號內提供的。例如使用title方法修改字符串大小寫
`name="shizy"`
`print(name.title())`
輸出Shizy,注意這里方法括號里面沒有參數。方法title首字母大寫,upper把所有字母大寫,lower所有字母小寫。
- python使用+號拼接字符串
- n,t分別為字符串添加換行,制表位。
- 方法rstrip()刪除字符串右邊空白strip是英文剝光的意思。左空白lstrip,左右空白全刪除strip。
- 函數str()實現數到字符串轉換
## 第三章 列表操作(元素可修改)
- 列表是有序的元素組合。用方括號[]表示,用逗號分隔
`liebiao1=['A','B','C','d']`
- 訪問列表(第一個元素索引號0)
`print(libiao1[0])`
- 修改刪除添加元素
修改列表元素的語法與訪問列表元素的語法類似。要修改列表元素,可指定列表名和要修改的元素的索引,再指定該元素的新值。例如修改第一個元素為a
`libiao1[0]='a'`
- 末尾添加元素(利用方法append())
`libiao1.append('e')`
- 插入元素到任意位置(利用方法insert())
`libiao1.insrt(1,'b')`#在第二個位置插入b元素
#### 刪除元素 ####
- 如果知道元素位置(del語句):`del libiao1[0]`
- 使用方法pop():pop()方法可刪除列表末尾的元素,并讓你能夠接著使用它。
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
popped_motorcycle = motorcycles.pop()
print(motorcycles)
print(popped_motorcycle)
也可以使用pop()來刪除列表中任何位置的元素,只需在括號中指定要刪除的元素的索引
- 如果知道元素值可以使用remove()方法`motorcycles.remove('ducati') print(motorcycles)`
####元素排序####
- 永久排序sort()方法,排序后原始列表順序永久修改。還可以按與字母順序相反的順序排列列表元素,為此,只需向sort() 方法傳遞參數`reverse=True`
- 臨時排序 sorted()函數(不是方法)
- 倒敘打印列表 使用reverse()方法
- 函數len()獲取列表長度,以下代碼返回4
cars = ['bmw', 'audi', 'toyota', 'subaru']
len(cars)
## 第四章 操作列表
- 遍歷列表(冒號與縮進)
liebiao1=['A','B','C','d']
for i in liebiao1:
print(i)
- range(x0,xm,dx)函數不包括最后一個值,步長dx
for value in range(1,5):
print(value)
- list()函數將range結果轉換列表格式
- min(),max(),sum()函數對列表操作
- 列表解析:列表解析 將for 循環和創建新元素的代碼合并成一行,并自動附加新元素,請注意,這里的for 語句末尾沒有冒號。
squares = [value**2 for value in range(1,11)]
print(squares)
- 切片(使用列表的一部分):如果你沒有指定第一個索引,將自動從列表開頭開始;如果你沒有指定第二個索引,將自動從列表到結尾。
print(libiao1([0:2]))
- 列表復制,這么操作的目的是為了得到新列表并進行其他操作,否則會修改掉原列表。
my_foods = ['pizza', 'falafel', 'carrot cake']
? friend_foods = my_foods[:]
my_foods.append('cannoli')
friend_foods.append('ice cream')
print("My favorite foods are:")
print(my_foods)
print("nMy friend's favorite foods are:")
print(friend_foods)
上面代碼就可以在my_friend添加ice_cream而不會修改原始列表。但是注意1處冒號。去掉冒號兩個列表都被修改。
## 第五章 元組操作(tuple不可修改元素)
- 使用圓括號而不是方括號來標識。定義元組后,就可以使用索引來訪問其元素,就像訪問列表元素一樣。
dimensions = (200, 50)
print(dimensions[0])
print(dimensions[1])
- 遍歷元組
for dimension in dimensions:
print(dimension)
- 修改元組變量: 雖然不能修改元組的元素,但可以給存儲元組的變量賦值。因此,如果要修改前述矩形的尺寸,可重新定義整個元組:
dimensions = (200, 50)
print("Original dimensions:")
for dimension in dimensions:
print(dimension)
dimensions = (400, 100)
print("nModified dimensions:")
for dimension in dimensions:
print(dimension)
## 第六章 If 語句用法(末尾冒號)
- 假設你有一個汽車列表,并想將其中每輛汽車的名稱打印出來。對于大多數汽車,都應以首字母大寫的方式打印其名稱,但對于汽車名'bmw' ,應以全大寫的方式打印。下面的代碼遍歷一個列表,并以首字母大寫的方式打印其中的汽車名,但對于汽車名'bmw' ,以全大寫的方式打印:
cars = ['audi', 'bmw', 'subaru', 'toyota']
for car in cars:
if car == 'bmw':
print(car.upper())
else:
print(car.title())
- 檢查是否不相等:要判斷兩個值是否不等,可結合使用驚嘆號和等號(!=),其中的驚嘆號表示不等。
- 檢查多個條件: and 和or。
- 檢查特定值是否包含在列表中(in)
requested_toppings = ['mushrooms', 'onions', 'pineapple']
'mushrooms' in requested_toppings
- 檢查特定值是否不包含在列表中 (not in)
- 在條件測試通過了時執行一個操作,并在沒有通過時執行另一個操作;在這種情況下,可使用Python提供的if-else 語句
- if-elif-else 結構
- 使用多個elif 代碼塊
- 確定列表不是空的:對于處理的每個列表都做了一個簡單的假設,即假設它們都至少包含一個元素。我們馬上就要讓用戶來提供存儲在列表中的信息,因此不能再假設循環運行時列表不是空的。有鑒于此,在運行for 循環前確定列表是否為空很重要
## 第七章 字典操作(相當于C語言結構體,花括號表示)
- 在Python中,字典是一系列鍵—值對 。每個鍵都與一個值相關聯,你可以使用鍵來訪問與之相關聯的值。與鍵相關聯的值可以是數字、字符串、列表乃至字典。事實上,可將任何Python對象用作字典中的值
alien_0 = {'color': 'green', 'points': 5}
- 鍵和值之間用冒號分隔,而鍵—值對之間用逗號分隔
- 訪問字典的值:要獲取與鍵相關聯的值,可依次指定字典名和放在方括號內的鍵
alien_0 = {'color': 'green'}
print(alien_0['color'])
- 添加鍵—值對:字典是一種動態結構,可隨時在其中添加鍵—值對。要添加鍵—值對,可依次指定字典名、用方括號括起的鍵和相關聯的值。
alien_0 = {'color': 'green', 'points': 5}
print(alien_0)
alien_0['x_position'] = 0
alien_0['y_position'] = 25
- 修改字典中的值:要修改字典中的值,可依次指定字典名、用方括號括起的鍵以及與該鍵相關聯的新值。
- 刪除鍵—值對:對于字典中不再需要的信息,可使用del 語句將相應的鍵—值對徹底刪除。使用del 語句時,必須指定字典名和要刪除的鍵。
del alien_0['points']
print(alien_0)
- 遍歷字典 所有的鍵—值對(利用liems()方法)
user_0 = {
'username': 'efermi',
'first': 'enrico',
'last': 'fermi',
}
for key, value in user_0.items():
print("nKey: " + key)
print("Value: " + value)
- 遍歷字典中的所有鍵(利用方法keys())
- 按順序遍歷字典中的所有鍵:字典總是明確地記錄鍵和值之間的關聯關系,但獲取字典的元素時,獲取順序是不可預測的。這不是問題,因為通常你想要的只是獲取與鍵相關聯的正確的值。要以特定的順序返回元素,一種辦法是在for 循環中對返回的鍵進行排序。為此,可使用函數sorted() 來獲得按特定順序排列的鍵列表的副本。
- 遍歷字典中的所有值,可使用方法values()。對于有很多相同值的重復項可以結合set函數
favorite_languages = {
'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
}
print("The following languages have been mentioned:")
for language in set(favorite_languages.values()):
print(language.title())
- 字典列表的嵌套使用
alien_0 = {'color': 'green', 'points': 5}
alien_1 = {'color': 'yellow', 'points': 10}
alien_2 = {'color': 'red', 'points': 15}
aliens = [alien_0, alien_1, alien_2]
for alien in aliens:
print(alien)
- 字典字典嵌套使用
## 第八章 while循環
- 函數input():函數input() 接受一個參數:即要向用戶顯示的提示 或說明,讓用戶知道該如何做.
message = input("輸入一個整數:")
print(message)
- 使用int() 函數來獲取數值輸入。使用函數input() 時,Python將用戶輸入解讀為字符串。利用int轉換為整數。
- 求模運算符 (%)是一個很有用的工具,它將兩個數相除并返回余數。
- while循環
current_number = 1
while current_number <= 5:
print(current_number)
current_number += 1
- 使用break 退出循環
while True:
city = input(prompt)
if city == 'quit':
break
else:
print("I'd love to go to " + city.title() + "!")
- 在循環中使用continue:要返回到循環開頭,并根據條件測試結果決定是否繼續執行循環,可使用continue語句,它不像break 語句那樣不再執行余下的代碼并退出整個循環
## 第九章 函數
- 定義函數
def greet_user():
"""顯示簡單的問候語"""
print("Hello!")
greet_user()
這個示例演示了最簡單的函數結構。使用關鍵字def 來告訴Python你要定義一個函數。這是函數定義 ,向Python指出了函數名,還可能在括號內指出函數為完成其
任務需要什么樣的信息。在這里,函數名為greet_user() ,它不需要任何信息就能完成其工作,因此括號是空的(即便如此,括號也必不可少)。最后,定義以冒號結尾。緊跟在def greet_user(): 后面的所有縮進行構成了函數體。?處的文本是被稱為文檔字符串 (docstring)的注釋,描述了函數是做什么的。文檔字符串用三引號括起,Python使用它們來生成有關程序中函數的文檔。
- 函數傳遞參數:向函數傳遞信息(實參和形參)
def greet_user(username):
"""顯示簡單的問候語"""
print("Hello, " + username.title() + "!")
greet_user('jesse')
- 位置實參,根據參數順序指定參數:是傳遞給函數的名稱—值對。你直接在實參中將名稱和值關聯起來了,因此向函數傳遞實參時不會混淆。關鍵字實參讓你無需考慮函數調用中的實參順序,還清楚地指出了函數調用中各個值的用途。
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')
- 編寫函數時,可給每個形參指定默認值 。在調用函數中給形參提供了實參時,Python將使用指定的實參值;否則,將使用形參的默認值。因此,給形參指定默認值后,可在函數調用中省略相應的實參。使用默認值可簡化函數調用,還可清楚地指出函數的典型用法。
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')
- 函數返回值
def get_formatted_name(first_name, last_name):
"""返回整潔的姓名"""
full_name = first_name + ' ' + last_name
return full_name.title()
- 傳遞列表:向函數傳遞列表很有用,這種列表包含的可能是名字、數字或更復雜的對象(如字典)。在函數中修改列表將列表傳遞給函數后,函數就可對其進行修改。在函數中對這個列表所做的任何修改都是永久性。
- 傳遞任意數量的實參(形參*toppings ,但不管調用語句提供了多少實參,這個形參都將它們統統收入囊中)。形參名*toppings 中的星號讓Python創建一個名為toppings 的空元組,并將收到的所有值都封裝到這個元組中。
def make_pizza(*toppings):
"""打印顧客點的所有配料"""
print(toppings)
make_pizza('pepperoni')
make_pizza('mushrooms', 'green peppers', 'extra cheese')
- 結合使用位置實參和任意數量實參。如果要讓函數接受不同類型的實參,必須在函數定義中將接納任意數量實參的形參放在最后。Python先匹配位置實參和關鍵字實參,再將余下的實參都收集到最后一個形參中。
- 導入整個模塊。要讓函數是可導入的,得先創建模塊。模塊 是擴展名為.py的文件,包含要導入到程序中的代碼。
- 導入特定的函數`from module_name import function_name`, `from module_name import function_0, function_1, function_2`
- 使用as 給函數指定別名
- 導入模塊中的所有函數:使用星號(* )運算符可讓Python導入模塊中的所有函,`from pizza import *`
## 第十章 python類(面向對象)慢慢體會哦
- 創建和使用類
使用類幾乎可以模擬任何東西。下面來編寫一個表示小狗的簡單類Dog ——它表示的不是特定的小狗,而是任何小狗。對于大多數寵物狗,我們都知道些什么呢?它們都有名字和年齡;我們還知道,大多數小狗還會蹲下和打滾。由于大多數小狗都具備上述兩項信息(名字和年齡)和兩種行為(蹲下和打滾),我們的Dog 類將包含它們。這個類讓Python知道如何創建表示小狗的對象。編寫這個類后,我們將使用它來創建表示特定小狗的實例。
- 創建Dog 類
根據Dog 類創建的每個實例都將存儲名字和年齡。每條小狗蹲下(sit())和打滾(roll_over())的能力.
class Dog():
? """一次模擬小狗的簡單嘗試"""
? def __init__(self, name, age):
"""初始化屬性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!")
在?處,我們定義了一個名為Dog 的類。根據約定,在Python中,首字母大寫的名稱指的是類。這個類定義中的括號是空的,因為我們要從空白創建這個類.
- 類中的函數稱為方法. 類中的函數稱為方法 ;你前面學到的有關函數的一切都適用于方法,就目前而言,唯一重要的差別是調用方法的方式。?處的方法__init__() 是一個特殊的方法,每當你根據Dog 類創建新實例時,Python都會自動運行它。在這個方法的名稱中,開頭和末尾各有兩個下劃線,這是一種約定,旨在避免Python默認方法與普通方法發生名稱沖突。
- 我們將方法__init__() 定義成了包含三個形參:self 、name 和age 。在這個方法的定義中,形參self 必不可少,還必須位于其他形參的前面。我們將通過實參向Dog() 傳遞名字和年齡;self 會自動傳遞,因此我們不需要傳遞它。每當我們根據Dog 類創建實例時,都只需給最后兩個形參(name 和age )提供值。
- Dog 類還定義了另外兩個方法:sit() 和roll_over() (見?)。由于這些方法不需要額外的信息,如名字或年齡,因此它們只有一個形參self
- 根據類創建實例
可將類視為有關如何創建實例的說明。Dog 類是一系列說明,讓Python知道如何創建表示特定小狗的實例。下面來創建一個表示特定小狗的實例
my_dog = Dog('willie', 6)
? print("My dog's name is " + my_dog.name.title() + ".")
? print("My dog is " + str(my_dog.age) + " years old.")
這里使用的是前一個示例中編寫的Dog 類。在?處,我們讓Python創建一條名字為'willie' 、年齡為6 的小狗。遇到這行代碼時,Python使用實參'willie' 和6 調用Dog 類中的方法__init__() 。方法__init__() 創建一個表示特定小狗的示例,并使用我們提供的值來設置屬性name 和age 。方法__init__() 并未顯式地包含return 語句,但Python自動返回一個表示這條小狗的實例。我們將這個實例存儲在變量my_dog 中。在這里,命名約定很有用:我們通??梢哉J為首字母大寫的名稱(如Dog )指的是類,而小寫的名稱(如my_dog )指的是根據類創建的實例。
- 訪問屬性.要訪問實例的屬性,可使用句點表示法。在?處,我們編寫了如下代碼來訪問my_dog 的屬性name 的值:
- 調用方法
my_dog = Dog('willie', 6)
my_dog.sit()
my_dog.roll_over()
要調用方法,可指定實例的名稱(這里是my_dog )和要調用的方法,并用句點分隔它們。遇到代碼my_dog.sit() 時,Python在類Dog 中查找方法sit() 并運行其代碼。
- 使用類和實例
- 繼承:編寫類時,并非總是要從空白開始。如果你要編寫的類是另一個現成類的特殊版本,可使用繼承 。一個類繼承 另一個類時,它將自動獲得另一個類的所有屬性和方法;原有的類稱為父類 ,而新類稱為子類 。子類繼承了其父類的所有屬性和方法,同時還可以定義自己的屬性和方法。
- 下面來創建一個簡單的ElectricCar 類版本,它具備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):
long_name = str(self.year) + ' ' + self.make + ' ' + self.model
return long_name.title()
def read_odometer(self):
print("This car has " + str(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
? class ElectricCar(Car):
"""電動汽車的獨特之處"""
? def __init__(self, make, model, year):
"""初始化父類的屬性"""
? super().__init__(make, model, year)
? my_tesla = ElectricCar('tesla', 'model s', 2016)
print(my_tesla.get_descriptive_name())
首先是Car 類的代碼(見?)。創建子類時,父類必須包含在當前文件中,且位于子類前面。在?處,我們定義了子類ElectricCar 。定義子類時,必須在括號內指定父類的名稱。方法__init__() 接受創建Car 實例所需的信息(見?)。?處的super() 是一個特殊函數,幫助Python將父類和子類關聯起來。這行代碼讓Python調用ElectricCar 的父類的方法__init__() ,讓ElectricCar 實例包含父類的所有屬性。父類也稱為超類 (superclass),名稱super因此而得名。
## 第十一章 文件操作
- 讀取整個文件。要讀取文件,需要一個包含幾行文本的文件。下面首先來創建一個文件,它包含精確到小數點后30位的圓周率值,且在小數點后每10位處都換行:
with open('pi_digits.txt') as file_object:
contents = file_object.read()
print(contents)
- 函數open()接受一個參數:要打開的文件的名稱。函數open() 返回一個表示文件的對象。在這里,open('pi_digits.txt') 返回一個表示文件pi_digits.txt 的對象;Python將這個對象存儲在我們將在后面使用的變量中。關鍵字with 在不再需要訪問文件后將其關閉。在這個程序中,注意到我們調用了open(),但沒有調用close() ;你也可以調用open() 和close() 來打開和關閉文件,但這樣做時,如果程序存在ug,導致close() 語句未執行,文件將不會關閉。
- 逐行讀取
filename = 'pi_digits.txt'
? with open(filename) as file_object:
? for line in file_object:
print(line)
-文件寫入:要將文本寫入文件,在調用open() 時需要提供另一個實參,告訴Python你要寫入打開的文件
filename = 'programming.txt'
? with open(filename, 'w') as file_object:
? file_object.write("I love programming.")
在這個示例中,調用open() 時提供了兩個實參(見?)。第一個實參也是要打開的文件的名稱;第二個實參('w' )告訴Python,我們要以寫入模式 打開這個文件。打開文件時,可指定讀取模式 ('r' )、寫入模式 ('w' )、附加模式 ('a' )或讓你能夠讀取和寫入文件的模式('r+' )。如果你省略了模式實參,Python將以默認的只讀模式打開文件。
如果你要寫入的文件不存在,函數open() 將自動創建它。然而,以寫入('w' )模式打開文件時千萬要小心,因為如果指定的文件已經存在,Python將在返回文件對象前清空該文件。
- 寫入多行。要讓每個字符串都單獨占一行,需要在write() 語句中包含換行符n。
- 異常處理
- 分析文本.方法split() 以空格為分隔符將字符串分拆成多個部分,并將這些部分都存儲到一個列表中
- 存儲數據 JSON
- 函數json.dump() 接受兩個實參:要存儲的數據以及可用于存儲數據的文件對象
----------
#*------------------實戰項目-----------------*
總結
以上是生活随笔為你收集整理的python如何去掉方括号_python从入门到实战外星人入侵的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 企业微信 添加白名单_企业微信群为什么只
- 下一篇: 树莓派_初尝树莓派