青少年Python编程
匯總來自?(鳳城老人的頭條主頁 - 今日頭條(www.toutiao.com)《青少年Python編程系列》。
一、input()輸入的內容是字符串類型
a = input("輸入邊長:") a = float(a) #inpuut輸入為字符串,此處轉化成浮點數字 s = a * a print("正方形面積s=",s) #輸出語句可以同時輸出多個內容,中間以逗號隔開,每個變量類型可以不同。不同的內容之間以空格隔開。二、內置函數
1、print函數:正常情況下,print按行輸出內容;如果在print函數里面加兩種“小尾巴”,就可以改變它的結尾符和分隔符。
print("Hello", end=' ') print("你好") print(1, 2, 3, 4, 5, sep=';')結果:
Hello 你好 1;2;3;4;52、pow()函數
作用與**運算符相同,用于計算冪運算,里面需要寫兩個參數,分別為底和冪。
3、round()函數
作用是對一個浮點數進行四舍五入,里面有兩個參數,第一個參數是浮點數,第二個參數是精確的小數位數,不寫默認精確到整數位。
4、eval()函數
作用是將字符串的內容作為Python的代碼執行。如下代碼段中,a被賦值為2,字符串的內容是a+3,變成代碼后就是2+3,輸出結果為5。以下代碼為2、3、4函數的樣例:
a = 3 ** 4 b = pow(3, 4) print(a, b) #兩者結果一樣 print(round(3.7)) # 4 print(round(120.6192, 2)) # 120.62 a = 2 print(eval("a+3")) #print(eval("Hello")) #這段代碼執行后會報錯:字符串中的Hello被轉換成了代碼執行,變成了一個標識符,但是這個變量沒有被定義,因此程序報錯。 a = eval(input("請輸入邊長:")) s = a * a print("正方形的面積:", s)eval()函數有如下妙用,還是以計算正方形面積的代碼為例。前面的代碼中,我們不知道正方形的邊長是整數還是浮點數,所以轉換成浮點數了。如果運行代碼時邊長輸入的整數,最后輸出的結果還是浮點數。如果用eval()函數就可以優化這個代碼。
三、字符串的使用
1、單引號或者雙引號書寫的字符串都是單行字符串。字符串在Python中還可以使用三個單引號或者三個雙引號開頭,三個單引號或者三個雙引號結尾,寫成多行字符串。
poem1 = '''遠上寒山石徑斜, 白云生處有人家。 停車坐愛楓林晚, 霜葉紅于二月花。''' poem2 = """日照香爐生紫煙, 遙看瀑布掛前川。 飛流直下三千尺, 疑是銀河落九天。 """ print(poem1, poem2, sep='\n')多行注釋的時候曾經用過三個單引號。如果不把它賦值給任何變量,它就是多行注釋;如果把它賦值給一個變量,它就變成多行字符串了。
2、字符串索引
字符串中每個字符都有對應的位置編號,通過索引可以獲取訪問字符串中的單個字符。索引分為正向索引和反向索引,正向索引編號從0開始,反向索引編號使用負數表示,從-1開始。
| 索引 | P | Y | T | H | O | N |
| 正向 | 0 | 1 | 2 | 3 | 4 | 5 |
| 反向 | -6 | -5 | -4 | -3 | -2 | -1 |
如果我們要獲取字母'N',可以使用正向索引,寫作lang[5];也可以使用反向索引,寫作lang[-1]。
易錯點:正向索引起始值為0,不是1。
3、字符串切片
我們經常需要截取字符串中的某些部分,切片就是截取字符串中某些部分的方法
切片的格式
str[start:end:step]
start:起始索引,取值的時候包括該索引,省略代表從0開始
end : 結束索引,取值的時候不包括該索引,省略代表到結尾
step:步長,每多少個字符取一個字符,省略代表1,負數代表反向切片
4、成員運算符
成員運算符使用關鍵字in。我們可以使用in或not in判斷字符串中是否包含字符串。
s = "Hello Python!" print("h" in s) # True 字符串中有h,in的判斷結果為True print("h" not in s) # False 字符串中有h,not in的判斷結果為False print("ab" in s) # False 字符串中沒有ab, in的判斷結果為False print("ab" not in s) # True 字符串中沒有ab, not in的判斷結果為True5、len()函數
len()函數可以獲取字符串的長度,即字符串中有多少個字符。
6、count()函數
使用count()方法可以獲取字符串中的子字符串的數量。
str.count(sub_str, beg=0, end=len(str))count()方法里面至少要有一個參數,是子字符串。后面兩個參數是可選項,分別是起始位置和結束位置。
s = "This is a sausage" print(s.count('s')) # 結果為4,字符串中有4個字母‘s’7、find()方法和index()方法
使用find()方法可以獲取字符串中子字符串首次出現位置的索引值,如果子字符串不存在則返回-1。使用index()方法同樣可以獲取字符串中子字符串首次出現位置的索引值,如果子字符串不存在程序報錯。
str.find(sub_str, beg=0, end=len(str)) str.index(sub_str, beg=0, end=len(str))find()方法和index()方法里面至少有一個參數,是子字符串。后面兩個參數是可選項,分別是起始位置和結束位置。我們看一下具體的使用。
s = "This is a sausage" print(s.find('s')) print(s.index('s')) # find()和index()結果都為3,第四個字符是s,索引號為3 print(s.find('s', 4)) print(s.index('s', 4)) # 結果為6。從索引為4的字符串開始往后找,第一個s出現在is上,索引號為6 print(s.find('z', 4)) # 結果為-1。字符串中沒有字母z,返回-1。 print(s.index('z', 4)) # 程序報錯8、upper()方法和lower()方法
upper()方法可以將字符串全部轉換為大寫字母,lower()方法可以將字符串全部轉換為小寫字母。
str.upper() str.lower()9、replace()方法
replace()方法可以將字符串中的子字符串替換為新的子字符串。
str.replace(old, new [, max])replace()方法中至少有兩個參數,分別是舊字符串和新字符串。第三個參數為可選項,可設置最多替換的個數,如不填寫則替換全部。
s = "This is a sausage" print(s.replace('sausage', 'pizza')) # 結果為:This is a pizza。sausage被替換成pizza。s2 = "SOS SOS SOS SOS SOS" print(s2.replace('SOS', 'HELP', 2)) # 結果為:HELP HELP SOS SOS SOS。最后一個參數2,規定了最多替換2個。10、strip()方法
strip()方法用于移除字符串頭尾兩端的指定字符或字符串,默認為空格和換行符。
注意:只刪除頭尾兩端的,不會刪除中間的。
四、列表
列表(list)是一種數據項構成的有限序列,即按照一定的線性順序,排列而成的數據項的集合,在這種數據結構上進行的基本操作包括對元素的的查找,插入,和刪除。
創建一個列表,只要把逗號分隔的不同的數據項使用方括號括起來即可。字符、字符串、數值等不同數據類型的數據可以保存到同一個列表中。
列表和字符串操作有很多相似,原文中介紹很詳細。這里重點引用以下內容。
1、字符串拆分成列表
有一定規律的字符串,可以使用指定的分隔符,將字符串拆分成列表。使用的是字符串的split()方法,使用方法如下:
str.split(sep, num)split()方法里面有兩個參數,第一個參數為分隔符,默認值為所有空字符(包括空格、換行、制表符等),第二個參數為分隔次數,默認值為-1,即分隔所有。我們看看具體的例子:
s = '西瓜,蘋果,梨子,桃子,芒果' list1 = s.split(',') print(list1) # ['西瓜', '蘋果', '梨子', '桃子', '芒果'] list2 = s.split(',', 2) print(list2) # ['西瓜', '蘋果', '梨子,桃子,芒果']第一個split()中只輸入了分隔符,沒有輸入次數,所有的逗號都是分隔符。
第二個split()中指定了分隔2次,從第3個逗號開始不再是分隔符。
s = 'I like swimming.\nDo you like swimming?' list1 = s.split() print(list1) # ['I', 'like', 'swimming.', 'Do', 'you', 'like', 'swimming?']這個例子中split()中沒有寫任何參數,空格和換行都是分隔符。
2、列表結合成字符串
字符串的join()方法,可以使用指定的分隔符,將列表結合成一個字符串。使用方法如下:
sep.join(list)我們看一下具體的使用方法:
list1 = ['蘋果', '西瓜', '梨子', '橘子', '芒果'] s1 = ' '.join(list1) print(s1) # 蘋果 西瓜 梨子 橘子 芒果 s2 = ';'.join(list1) print(s2) # 蘋果;西瓜;梨子;橘子;芒果3、列表的復制
3.1 可變數據類型和不可變數據類型
我們先來做一個實驗:
a = [1, 2, 3, 4] b = a a.append(5) print(a) print(b)看上面的代碼以后,我們思考一下,得到的結果與實際的結果是不是一致。
實踐證明,我們修改列表a的值以后,列表b的值也跟著變了,這就要引入一個新的知識叫做可變數據類型。列表是一種可變數據類型,列表的變量名稱是指向對象的一個標簽。 變量名稱指向了一個內存地址,再賦值一個變量,只不過是使用了另外一個變量指向了同一個位置,而不是在內存的另一個位置重新建立一個列表。
可變數據類型:變量在內存中創建后,內存中的數據可以被修改。(list)
不可變數據類型:變量在內存中創建后,內存中的數據不可以被修改。如果被修改,會在其他區域重新建立。 (int, float, bool)
3.2 列表復制到方法
通過剛才的例子,我們看出列表是無法通過一個新的變量賦值的方式來復制的。那我們怎樣從內存中開辟一個新的空間,復制一個新的列表出來呢?我們需要用到切片:
通過這個方法我們修改一下原來的代碼,再看看效果:
a = [1, 2, 3, 4] b = a[:] a.append(5) print(a) print(b)?五、元組(Tuple)
Python元組和Python列表數據類似,都是線性表。唯一不同的是:Python元組賦值后所存儲的數據不能被程序修改,可以將元組看作是只能讀取數據不能修改數據的列表。
Python元組是不可變數據類型,Python列表是可變數據類型。
元組類型除了無法修改,別的跟列表沒什么區別,那我們為什么需要元組類型呢?元組類型一般用來存放元素個數和位置確定的一堆數據,比如學生有學號、性別、出生年月,保存后幾乎不可能修改。我們可以定義元組保存。在Python中,元組處理的速度要比列表快。
六、字典類型和集合類型
字典(dictionary,函數名稱dict)是另一種可變容器模型,且可存儲任意類型對象。如字符串、數字、元組等其他容器模型。
字典由鍵和對應值成對組成。字典也被稱作關聯數組或哈希表。基本語法如下:
字典的每個鍵值(key=>value)對用冒號(:)分割,每個對之間用逗號(,)分割,整個字典包括在花括號({})中:
d = {key1: value1, key2: value2 }字典,從字面我們就想到了字典。我們回憶一下我們查字典,不管采用哪種查字典的方法,最后對應的 我們想要找的那個字。還有就是超市里的價簽,都是有對應性的。字典和他們一樣都有對應性。
集合(set)是由不重復元素組成的無序容器。基本用法包括成員檢測、消除重復元素。集合對象支持合集、交集、差集、對稱差分等數學運算。
集合的創建使用花括號或者set函數。(空集合只能用set函數創建)
集合類型主要用于計算交集、并集、差集、對稱差集(由于集合的知識需要高中數學中才會學習,這里不講集合的運算符)。但是利用集合元素不能重復的特性,我們可以對列表進行去除重復值的操作,這也是去除列表中重復值最方便的方法。
總結
以上是生活随笔為你收集整理的青少年Python编程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nginx转发https网页加载http
- 下一篇: python函数找钱_找钱问题–动态规划