日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

【Python】【入门】一文带你掌握Python27入门 ~

發(fā)布時(shí)間:2025/3/20 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python】【入门】一文带你掌握Python27入门 ~ 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

    • 一、python基礎(chǔ)
      • 1.編碼問題
      • 2.Python 標(biāo)識符
      • 3.行與縮進(jìn)
      • 4.多行語句
      • 5.引號、注釋和空行
      • 6.變量賦值
    • 二、python進(jìn)階
      • 7.Python數(shù)字
      • 8.Python字符串
      • 9.Python列表
      • 10.Python元組
      • 11.Python字典
      • 12.數(shù)據(jù)類型的轉(zhuǎn)換
      • 13.python運(yùn)算符
    • 三、python語句
      • 14.if-elif-else
      • 15.for循環(huán)語句
      • 16.pass語句
      • 17.python函數(shù)
    • 四、python文件和異常處理
      • 18.Python 模塊
      • 19.Python 文件I/O
    • 五、參考文獻(xiàn)

一、python基礎(chǔ)

1.編碼問題

1.首先是代碼中設(shè)置的編碼問題,可以通過下面兩行代碼(二選一)解決問題

# coding=utf-8 # -*- coding: UTF-8 -*-

若不添加以上兩行代碼可能匯出入如下錯(cuò)誤

2.然后是控制臺中的編碼問題,由于我們在代碼中設(shè)置中文字符串,雖然在代碼中設(shè)置了utf-8作為編碼規(guī)范,但是在控制臺(vs code)的默認(rèn)是GBK2312編碼,輸入chcp可以查到它的編號,(GBK2312的編號是936),那要與代碼中的編碼匹配,則需要控制臺的編碼:chcp 65001,如此即可

chcp #若不為65001,則修改編號 chcp 65001

導(dǎo)入庫

找到python安裝路徑,其中有Scripts文件夾里有一個(gè)pip.exe文件,使用命令行進(jìn)入該文件下,然后

#.\pip install [安裝的庫],如導(dǎo)入xlrd庫: .\pip install xlrd

2.Python 標(biāo)識符

以下劃線開頭的標(biāo)識符是有特殊意義的。

單下劃線開頭 _foo 的代表不能直接訪問的類屬性,需通過類提供的接口進(jìn)行訪問,不能用 from xxx import * 而導(dǎo)入。

雙下劃線開頭的 __foo 代表類的私有成員,以雙下劃線開頭和結(jié)尾的 foo 代表 Python 里特殊方法專用的標(biāo)識,如 init() 代表類的構(gòu)造函數(shù)。

3.行與縮進(jìn)

Python 的代碼塊不使用大括號 {} 來控制類,函數(shù)以及其他邏輯判斷。python 最具特色的就是用縮進(jìn)來寫模塊。

縮進(jìn)的空白數(shù)量是可變的,但是所有代碼塊語句必須包含相同的縮進(jìn)空白數(shù)量,這個(gè)必須嚴(yán)格執(zhí)行。

4.多行語句

Python語句中一般以新行作為語句的結(jié)束符。

但是我們可以使用斜杠( \)將一行的語句分為多行顯示,如下所示:

item_one = 1 item_two = 2 item_three = 3 total = item_one + \item_two + \item_three print(total)

5.引號、注釋和空行

引號:

Python 可以使用引號( )、雙引號( " )、三引號( ‘’’“”" ) 來表示字符串,引號的開始與結(jié)束必須是相同類型的。

注意:三引號可以由多行組成,編寫多行文本的快捷語法,常用于文檔字符串,在文件的特定地點(diǎn),被當(dāng)做注釋。

word = 'word' sentence = "這是一個(gè)句子。" paragraph = """這是一個(gè)段落。 包含了多個(gè)語句"""

注釋:

單行注釋:#

多行注釋:python 中多行注釋使用三個(gè)單引號(’’’)或三個(gè)雙引號(""")。——與引號中定義字符串不同的是,字符串都是有名字的。

#這是單行注釋""" 這是多行注釋 這是多行注釋 這是多行注釋 """

空行:

函數(shù)之間或類的方法之間用空行分隔,表示一段新的代碼的開始。

同一行顯示多條語句:

Python可以在同一行中使用多條語句,語句之間使用分號(;)分割==(并不建議這樣做)==

輸出:

print 默認(rèn)輸出是換行的,如果要實(shí)現(xiàn)不換行需要在變量末尾加上逗號 ,

x=1 y=2 print(x,y) #當(dāng)括號中多于一個(gè)對象時(shí),這是一種集合輸出方式 print(x) print(y) print x,y print x print y""" 輸出: (1, 2) 1 2 1 2 1 2 """

6.變量賦值

賦值說明:

Python 中的變量賦值不需要類型聲明。

每個(gè)變量在內(nèi)存中創(chuàng)建,都包括變量的標(biāo)識,名稱和數(shù)據(jù)這些信息。

每個(gè)變量在使用前都必須賦值,變量賦值以后該變量才會被創(chuàng)建。

#類型測試 int1 = 1 #這是整型 float1 = 2.0 #這是浮點(diǎn)型 string1 = "hello world" #這是字符型 list1 = ['physics', 'chemistry', 1997, 2000] #這是列表型 tup1 = ('physics', 'chemistry', 1997, 2000) #這是元組 dict1 = {'a': 1, 'b': 2, 'b': '3'} #這是字典print int1 print float1 print string1 print list1 print tup1 print dict1 print("------以下是類型------") print(type(int1)) print(type(float1)) print(type(string1)) print(type(list1)) print(type(tup1)) print(type(dict1))''' 輸出: 1 2.0 hello world ['physics', 'chemistry', 1997, 2000] ('physics', 'chemistry', 1997, 2000) {'a': 1, 'b': '3'} ------以下是類型------ <type 'int'> <type 'float'> <type 'str'> <type 'list'> <type 'tuple'> <type 'dict'> '''

刪除:

可以使用del語句刪除一些對象的引用。

del語句的語法是:

del var1[,var2[,var3[....,varN]]]]

也可以通過使用del語句刪除單個(gè)或多個(gè)對象的引用。例如:

del var del var_a, var_b

二、python進(jìn)階

7.Python數(shù)字

python數(shù)學(xué)函數(shù)

#python中一些數(shù)字函數(shù)的用法 import math #在使用數(shù)學(xué)函數(shù)的時(shí)候要用到cmath和math庫 num1 = -10.2 print "abs函數(shù)取數(shù)字的絕對值:",abs(num1) #取絕對值,輸出10。和fabs庫差不多 num2 = 3.14 num3 = 2 num4 = 3 num5 = 4.5 print "ceil函數(shù)取數(shù)字的向上取整:",math.ceil(num2) #輸出4.0 print "cmp函數(shù)用于比較數(shù)字的大小:",cmp(num1,num2) #num1<num2輸出-1;num1==num2輸出0;num1>num2輸出1 print "floor函數(shù)取數(shù)字的向下取整:",math.floor(num2) #輸出3.0,返回的是一個(gè)浮點(diǎn)數(shù) print "取一個(gè)最大值:",max(num1,num2) #輸出3.14 print "取一個(gè)最小值:",min(num1,num2) #輸出-10.2 print "冪次方",pow(2,3) #2的3次方 print "四舍五入:",round(num2),",",round(num5) print "取根號:",math.sqrt(num3)

python隨機(jī)數(shù)函數(shù)

#Python隨機(jī)數(shù)函數(shù) import math import random #使用random函數(shù)就必須導(dǎo)入random包 list2 = list(range(10)) print list2 print "隨機(jī)選擇一個(gè)0~10之間的數(shù):",random.choice(list2) #choice(s)函數(shù)用于隨機(jī)選擇序列s中的一個(gè)數(shù) print "指定遞增基數(shù)集合中的一個(gè)隨機(jī)數(shù),基數(shù)默認(rèn)值為1: ", random.randrange(100, 1000, 2) #開始為100,結(jié)束為1000,步長為2 print "隨機(jī)生成一個(gè)0~1之間的隨機(jī)數(shù)(后擴(kuò)展為隨機(jī)生成一個(gè)整數(shù)):",int(math.ceil(random.random()*1000)) print "Random number with seed 10 : ", random.random() random.shuffle(list2) #直接修改序列中的數(shù)隨機(jī)排列 print "將序列中的數(shù)隨機(jī)排列:",list2 print "隨機(jī)生成一個(gè)在一定區(qū)間中的數(shù):",random.uniform(1,10)#seed設(shè)置一個(gè)種子,設(shè)置這個(gè)種子后,所有的隨機(jī)數(shù)都在一定的規(guī)則中運(yùn)行 print random.random() print random.random() print "------- 設(shè)置種子 seed -------" random.seed( 10 ) print "Random number with seed 10 : ", random.random() # 生成同一個(gè)隨機(jī)數(shù) random.seed( 10 ) print "Random number with seed 10 : ", random.random() # 生成同一個(gè)隨機(jī)數(shù) random.seed( 10 )

8.Python字符串

python的字串列表有2種取值順序:

  • 從左到右索引默認(rèn)0開始的,最大范圍是字符串長度少1
  • 從右到左索引默認(rèn)-1開始的,最大范圍是字符串開頭


如果你要實(shí)現(xiàn)從字符串中獲取一段子字符串的話,可以使用 [頭下標(biāo):尾下標(biāo)] 來截取相應(yīng)的字符串,其中下標(biāo)是從 0 開始算起,可以是正數(shù)或負(fù)數(shù),下標(biāo)可以為空表示取到頭或尾。

[頭下標(biāo):尾下標(biāo)] 獲取的子字符串包含頭下標(biāo)的字符,但不包含尾下標(biāo)的字符。

str = 'Hello World!'print str # 輸出完整字符串 print str[0] # 輸出字符串中的第一個(gè)字符 print str[2:5] # 輸出字符串中第三個(gè)至第六個(gè)之間的字符串 print str[2:] # 輸出從第三個(gè)字符開始的字符串 print str * 2 # 輸出字符串兩次 print str + "TEST" # 輸出連接的字符串hi = '''hi there''' print hi """ Hello World! H llo llo World! Hello World!Hello World! Hello World!TESThi theres """ #字符串拼接 var1 = 'Hello World!' print "輸出 :- ", var1[:6] + 'Runoob!' #字符串用加號拼接#Python 字符串格式化 print "My name is %s and weight is %d kg!" % ('Zara', 21) #輸出:My name is Zara and weight is 21 kg!

元組和列表的區(qū)別:

1.元組使用小括號,列表使用方括號。

2.元組中的元素值是不允許修改的,但列表可以。

3.元組中的元素值是不允許刪除的,但列表元素值可以刪除。

4.同理,元組沒有pop、insert、append等對元組進(jìn)行修改刪除插入的方法或函數(shù)。

Python字符串運(yùn)算符

下表實(shí)例變量 a 值為字符串 “Hello”,b 變量值為 “Python”:

操作符描述實(shí)例
+字符串連接>>>a + b ‘HelloPython’
*重復(fù)輸出字符串>>>a * 2 ‘HelloHello’
[]通過索引獲取字符串中字符>>>a[1] ‘e’
[ : ]截取字符串中的一部分>>>a[1:4] ‘ell’
in成員運(yùn)算符 - 如果字符串中包含給定的字符返回 True>>>“H” in a True
not in成員運(yùn)算符 - 如果字符串中不包含給定的字符返回 True>>>“M” not in a True
r/R原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思來使用,沒有轉(zhuǎn)義特殊或不能打印的字符。 原始字符串除在字符串的第一個(gè)引號前加上字母"r"(可以大小寫)以外,與普通字符串有著幾乎完全相同的語法。>>>print r’\n’ \n >>> print R’\n’ \n

python字符串內(nèi)建函數(shù)

#python的字符串內(nèi)建函數(shù) hello = "hello" world = "world" print hello.capitalize() #將字符串的第一個(gè)字符大寫,不改變原字符類型 print hello.center(11,"=") #第一個(gè)參數(shù)為整個(gè)字符串的長度,第二個(gè)參數(shù)為將目標(biāo)字符串居中后,前后字符位置填充的內(nèi)容 print hello.count('l',0,len(hello)) #統(tǒng)計(jì)字符串里某個(gè)字符出現(xiàn)的次數(shù) print hello.endswith("o",0,len(hello)) #用于判斷字符串是否以指定后綴結(jié)尾,如果以指定后綴結(jié)尾返回True,否則返回False print hello.find("lo",0,len(hello)) #檢測 str 是否包含在 string 中,返回的是開始時(shí)候的索引 print ("第一個(gè)字符串:{str1}, 第二個(gè)字符串:{str2}".format(str1=hello, str2=world)) print "第一個(gè)字符串:%s, 第二個(gè)字符串:%s" % (hello , world) #增強(qiáng)了字符串格式化的功能。基本語法是通過 {} 和 : 來代替以前的 % 。 print hello.isalnum() #如果 string 至少有 一個(gè)字符 并且 所有字符 都是 字母或數(shù)字 則返回 True,否則返回 False print hello.isalpha() #如果 string 至少有 一個(gè)字符 并且 所有字符 都是 字母 則返回 True,否則返回 False str = "-" seq = ("a", "b", "c") # 字符串序列 print "用join拼接后的數(shù)組:",str.join( seq ) #將序列中的元素以指定的字符連接生成一個(gè)新的字符串。 #這一部分可以查網(wǎng)址 菜鳥教程:https://www.runoob.com/python/python-strings.html print hello""" 輸出: Hello ===hello=== 2 True 3 第一個(gè)字符串:hello, 第二個(gè)字符串:world 第一個(gè)字符串:hello, 第二個(gè)字符串:world True True 用join拼接后的數(shù)組: a-b-c hello 測試python函數(shù) """

9.Python列表

List(列表) 是 Python 中使用最頻繁的數(shù)據(jù)類型。

列表可以完成大多數(shù)集合類的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)。它支持字符,數(shù)字,字符串甚至可以包含列表(即嵌套)。

列表用 [ ] 標(biāo)識,是 python 最通用的復(fù)合數(shù)據(jù)類型。

列表中值的切割也可以用到變量 [頭下標(biāo):尾下標(biāo)] ,就可以截取相應(yīng)的列表,從左到右索引默認(rèn) 0 開始,從右到左索引默認(rèn) -1 開始,下標(biāo)可以為空表示取到頭或尾。

#列表 list = [ 'hello world', 54 , 3.14, '123', 5.56 ,[111,"123"]] tinylist = [123, 'john'] plus = [list,tinylist]print list # 輸出完整列表 print list[0] # 輸出列表的第一個(gè)元素 print list[1:3] # 輸出第二個(gè)至第三個(gè)元素 print "找到列表最后的元素",list[-1] # 找到列表最后的元素 print list[2:] # 輸出從第三個(gè)開始至列表末尾的所有元素 print tinylist * 2 # 輸出列表兩次 print list + tinylist # 打印組合的列表 print list.append("159") # 使用 append() 添加元素 del list[1] # 使用del刪除元素 list[1] = 0.168 # 修改列表中的元素 # 一些方法具體參考 菜鳥教程:https://www.runoob.com/python/python-lists.html print plus""" 輸出: ['hello world', 54, 3.14, '123', 5.56, [111, '123']] hello world [54, 3.14] 找到列表最后的元素 [111, '123'] [3.14, '123', 5.56, [111, '123']] [123, 'john', 123, 'john'] ['hello world', 54, 3.14, '123', 5.56, [111, '123'], 123, 'john'] None [['hello world', 0.168, '123', 5.56, [111, '123'], '159'], [123, 'john']] """

10.Python元組

元組是另一個(gè)數(shù)據(jù)類型,類似于 List(列表)。

元組用 () 標(biāo)識。內(nèi)部元素用逗號隔開。但是元組不能二次賦值,相當(dāng)于只讀列表——相當(dāng)于不能修改的列表,定義方式不同

#元組——不可修改的列表 tuple = ('hello world', 54 , 3.14, '123', 5.56 ,[111,"123"]) tinytuple = (123, 'john') plus = (tuple ,tinytuple ) #訪問元組 print tuple # 輸出完整元組 print tuple [0] # 輸出元組的第一個(gè)元素 print tuple [1:3] # 輸出第二個(gè)至第三個(gè)元素 print tuple [2:] # 輸出從第三個(gè)開始至元組末尾的所有元素 #增加元組元素。當(dāng)前元組元素不允許增加元素,所以要增加元組中的元素要新建元組,把需要添加進(jìn)去的元素添加 #修改元組元素。當(dāng)前元組元素不允許增加元素,所以要修改元組中的元素要新建元組 tuple_append = tuple + tinytuple #新的元組 print tinytuple * 2 # 輸出元組兩次 print tuple_append # 打印組合的元組 #刪除元組元素,元組中的元素值是不允許刪除的,但我們可以使用del語句來刪除整個(gè)元組 print plus""" 輸出: ('hello world', 54, 3.14, '123', 5.56, [111, '123']) hello world (54, 3.14) (3.14, '123', 5.56, [111, '123']) (123, 'john', 123, 'john') ('hello world', 54, 3.14, '123', 5.56, [111, '123'], 123, 'john') (('hello world', 54, 3.14, '123', 5.56, [111, '123']), (123, 'john')) """

11.Python字典

字典(dictionary)是除列表以外python之中最靈活的內(nèi)置數(shù)據(jù)結(jié)構(gòu)類型。列表是有序的對象集合,字典是無序的對象集合。

兩者之間的區(qū)別在于:字典當(dāng)中的元素是通過鍵來存取的,而不是通過偏移存取。

字典用"{ }"標(biāo)識。字典由索引(key)和它對應(yīng)的值value組成。類似于Java中的map。

dict = {} dict['one'] = "This is one" dict[2] = "This is two" tinydict = {'name': 'python','code':3.14, 'dept': [111,"222"]} #讀取數(shù)據(jù) print dict['one'] # 輸出鍵為'one' 的值 print dict[2] # 輸出鍵為 2 的值 print tinydict # 輸出完整的字典 print tinydict.keys() # 輸出所有鍵 print tinydict.values() # 輸出所有值 #增加字典中的映射關(guān)系 def Merge(dict1, dict2): return(dict2.update(dict1)) add_dict = Merge(dict, tinydict) #將第一個(gè)參數(shù)中的合并到第二個(gè)參數(shù)的字典中去 print "合并字典,add_dict的值",add_dict,";tinydict的值",tinydict #修改字典中的映射關(guān)系 tinydict["dept"] = 123 print tinydict #刪除字典中的映射關(guān)系 del tinydict["dept"] #刪除字典中key值為“dept”的鍵值對 tinydict.clear() #清空整個(gè)字典 print tinydict """ 輸出: This is one This is two {'dept': [111, '222'], 'code': 3.14, 'name': 'python'} ['dept', 'code', 'name'] [[111, '222'], 3.14, 'python'] 合并字典,add_dict的值 None ;tinydict的值 {'dept': [111, '222'], 2: 'This is two', 'code': 3.14, 'name': 'python', 'one': 'This is one'} {'dept': 123, 2: 'This is two', 'code': 3.14, 'name': 'python', 'one': 'This is one'} {} """

字典的特性:

1)不允許同一個(gè)鍵出現(xiàn)兩次。創(chuàng)建時(shí)如果同一個(gè)鍵被賦值兩次,后一個(gè)值會被記住

2)鍵必須不可變,所以可以用數(shù)字,字符串或元組充當(dāng),所以用列表就不行

12.數(shù)據(jù)類型的轉(zhuǎn)換

函數(shù)描述
int(x,base)將x轉(zhuǎn)換為一個(gè)整數(shù),base指的是基數(shù)
float(x)將x轉(zhuǎn)換到一個(gè)浮點(diǎn)數(shù)
str(x)將對象 x 轉(zhuǎn)換為字符串
repr(x)將對象 x 轉(zhuǎn)換為表達(dá)式字符串
tuple(s)將序列 s 轉(zhuǎn)換為一個(gè)元組
list(s)將序列 s 轉(zhuǎn)換為一個(gè)列表
set(s)轉(zhuǎn)換為可變集合
dict(d)創(chuàng)建一個(gè)字典。d 必須是一個(gè)序列 (key,value)元組。
num1 = 3.14 num2 = 6 string = "unittec" dict_ex = {'runoob': 'dict_ex', 'google': 'google.com'} list_ex = [123,"list_ex",13.25] tuple_ex = (458,"tuple_ex",5.56) toInt = int(num1) #將浮點(diǎn)數(shù)強(qiáng)轉(zhuǎn)為整數(shù) toFloat = float(num2) #將整型強(qiáng)轉(zhuǎn)為浮點(diǎn)型 toString = str(num1) #將浮點(diǎn)型強(qiáng)轉(zhuǎn)為字符串 s = repr(dict_ex) #repr() 函數(shù)將對象轉(zhuǎn)化為供解釋器讀取的形式。 toTuple = tuple(list_ex) #tuple(s)是將序列s轉(zhuǎn)為元組模式 toList = list(tuple_ex) #list(s)是將序列s轉(zhuǎn)為列表模式 toSet = set(string) #set(s)是將字符創(chuàng)轉(zhuǎn)化為集合模式 toDict1 = dict(zip(list_ex,toList)) #映射函數(shù)方式來構(gòu)造字典 toDict2 = dict([('one',1),('two',2)]) #可迭代對象方式來構(gòu)造字典 print "int(x):",toInt print "float(x):",toFloat print "str(x):",toString,"===",type(toString) print "repr(x):",s,"===",type(toString) print "tuple(s):",toTuple print "list(s):",toList print "set(s):",toSet print "映射方式生成字典:",toDict1 print "迭代方式生成字典",toDict2 """ int(x): 3 float(x): 6.0 str(x): 3.14 === <type 'str'> repr(x): {'google': 'google.com', 'runoob': 'dict_ex'} tuple(s): (123, 'list_ex', 13.25) list(s): [458, 'tuple_ex', 5.56] set(s): set(['c', 'e', 'i', 'n', 'u', 't']) 映射方式生成字典: {13.25: 5.56, 123: 458, 'list_ex': 'tuple_ex'} 迭代方式生成字典 {'two': 2, 'one': 1} """

13.python運(yùn)算符

算數(shù)運(yùn)算符

運(yùn)算符描述實(shí)例
+加 - 兩個(gè)對象相加a + b 輸出結(jié)果 30
-減 - 得到負(fù)數(shù)或是一個(gè)數(shù)減去另一個(gè)數(shù)a - b 輸出結(jié)果 -10
*乘 - 兩個(gè)數(shù)相乘或是返回一個(gè)被重復(fù)若干次的字符串a * b 輸出結(jié)果 200
/除 - x除以yb / a 輸出結(jié)果 2
%取模 - 返回除法的余數(shù)b % a 輸出結(jié)果 0
**冪 - 返回x的y次冪a**b 為10的20次方, 輸出結(jié)果 100000000000000000000
//取整除 - 返回商的整數(shù)部分(向下取整>>> 9//2 4 >>> -9//2 -5

Python比較運(yùn)算符

以下假設(shè)變量a為10,變量b為20:

運(yùn)算符描述實(shí)例
==等于 - 比較對象是否相等(a == b) 返回 False。
!=不等于 - 比較兩個(gè)對象是否不相等(a != b) 返回 true.
<>不等于 - 比較兩個(gè)對象是否不相等。python3 已廢棄。(a <> b) 返回 true。這個(gè)運(yùn)算符類似 != 。
>大于 - 返回x是否大于y(a > b) 返回 False。
<小于 - 返回x是否小于y。所有比較運(yùn)算符返回1表示真,返回0表示假。這分別與特殊的變量True和False等價(jià)。(a < b) 返回 true。
>=大于等于 - 返回x是否大于等于y。(a >= b) 返回 False。
<=小于等于 - 返回x是否小于等于y。(a <= b) 返回 true。

Python賦值運(yùn)算符

以下假設(shè)變量a為10,變量b為20:

運(yùn)算符描述實(shí)例
=簡單的賦值運(yùn)算符c = a + b 將 a + b 的運(yùn)算結(jié)果賦值為 c
+=加法賦值運(yùn)算符c += a 等效于 c = c + a
-=減法賦值運(yùn)算符c -= a 等效于 c = c - a
*=乘法賦值運(yùn)算符c *= a 等效于 c = c * a
/=除法賦值運(yùn)算符c /= a 等效于 c = c / a
%=取模賦值運(yùn)算符c %= a 等效于 c = c % a
**=冪賦值運(yùn)算符c **= a 等效于 c = c ** a
//=取整除賦值運(yùn)算符c //= a 等效于 c = c // a

Python位運(yùn)算符

按位運(yùn)算符是把數(shù)字看作二進(jìn)制來進(jìn)行計(jì)算的。Python中的按位運(yùn)算法則如下:

下表中變量 a 為 60,b 為 13,二進(jìn)制格式如下:

a = 0011 1100b = 0000 1101-----------------a&b = 0000 1100a|b = 0011 1101a^b = 0011 0001~a = 1100 0011 運(yùn)算符描述實(shí)例
&按位與運(yùn)算符:參與運(yùn)算的兩個(gè)值,如果兩個(gè)相應(yīng)位都為1,則該位的結(jié)果為1,否則為0(a & b) 輸出結(jié)果 12 ,二進(jìn)制解釋: 0000 1100
|按位或運(yùn)算符:只要對應(yīng)的二個(gè)二進(jìn)位有一個(gè)為1時(shí),結(jié)果位就為1。(a | b) 輸出結(jié)果 61 ,二進(jìn)制解釋: 0011 1101
^按位異或運(yùn)算符:當(dāng)兩對應(yīng)的二進(jìn)位相異時(shí),結(jié)果為1(a ^ b) 輸出結(jié)果 49 ,二進(jìn)制解釋: 0011 0001
~按位取反運(yùn)算符:對數(shù)據(jù)的每個(gè)二進(jìn)制位取反,即把1變?yōu)?,把0變?yōu)? 。~x 類似于 -x-1(~a ) 輸出結(jié)果 -61 ,二進(jìn)制解釋: 1100 0011,在一個(gè)有符號二進(jìn)制數(shù)的補(bǔ)碼形式。
<<左移動(dòng)運(yùn)算符:運(yùn)算數(shù)的各二進(jìn)位全部左移若干位,由 << 右邊的數(shù)字指定了移動(dòng)的位數(shù),高位丟棄,低位補(bǔ)0。a << 2 輸出結(jié)果 240 ,二進(jìn)制解釋: 1111 0000
>>右移動(dòng)運(yùn)算符:把">>"左邊的運(yùn)算數(shù)的各二進(jìn)位全部右移若干位,>> 右邊的數(shù)字指定了移動(dòng)的位數(shù)a >> 2 輸出結(jié)果 15 ,二進(jìn)制解釋: 0000 1111

Python邏輯運(yùn)算符

Python語言支持邏輯運(yùn)算符,以下假設(shè)變量 a 為 10, b為 20:

運(yùn)算符邏輯表達(dá)式描述實(shí)例
andx and y布爾"與" - 如果 x 為 False,x and y 返回 False,否則它返回 y 的計(jì)算值。(a and b) 返回 20。
orx or y布爾"或" - 如果 x 是非 0,它返回 x 的值,否則它返回 y 的計(jì)算值。(a or b) 返回 10。
notnot x布爾"非" - 如果 x 為 True,返回 False 。如果 x 為 False,它返回 True。not(a and b) 返回 False

Python成員運(yùn)算符

除了以上的一些運(yùn)算符之外,Python還支持成員運(yùn)算符,測試實(shí)例中包含了一系列的成員,包括字符串,列表或元組。

運(yùn)算符描述實(shí)例
in如果在指定的序列中找到值返回 True,否則返回 False。x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
not in如果在指定的序列中沒有找到值返回 True,否則返回 False。x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。

Python身份運(yùn)算符

身份運(yùn)算符用于比較兩個(gè)對象的存儲單元

運(yùn)算符描述實(shí)例
isis 是判斷兩個(gè)標(biāo)識符是不是引用自一個(gè)對象x is y, 類似 id(x) == id(y) , 如果引用的是同一個(gè)對象則返回 True,否則返回 False
is notis not 是判斷兩個(gè)標(biāo)識符是不是引用自不同對象x is not y , 類似 id(a) != id(b)。如果引用的不是同一個(gè)對象則返回結(jié)果 True,否則返回 False。

三、python語句

14.if-elif-else

語法格式:

if 判斷條件1:執(zhí)行語句1…… elif 判斷條件2:執(zhí)行語句2…… elif 判斷條件3:執(zhí)行語句3…… else:執(zhí)行語句4……

實(shí)例:

#if-elif-else num = 0 while num < 15:if num % 3 == 0:print num,"是3的倍數(shù)"elif num % 3 == 1:print num,"是除3余1的數(shù)"else:print num,"是除3余2的數(shù)"num += 1

15.for循環(huán)語句

語法格式:

for iterating_var in sequence:statements(s)

實(shí)例:

#for循環(huán) for letter in "qwe":print "當(dāng)前字母:",letterseasons = ["spring","summer","fall","winter"] nums = (1,2,3,4) for season in seasons:print "當(dāng)前季節(jié)為:",season for num in nums:print "當(dāng)前數(shù)字是:",num

通過索引迭代:

#for循環(huán)中的索引迭代 for index in range(len(seasons)): #range是生成一組序列的意思print indexprint seasons[index]

循環(huán)使用 else 語句:

在 python 中,for … else 表示這樣的意思,for 中的語句和普通的沒有區(qū)別,else 中的語句會在循環(huán)正常執(zhí)行完的情況下執(zhí)行,while … else 也是一樣。

for num in range(10,20): # 迭代 10 到 20 之間的數(shù)字for i in range(2,num): # 根據(jù)因子迭代if num%i == 0: # 確定第一個(gè)因子j=num/i # 計(jì)算第二個(gè)因子print '%d 等于 %d * %d' % (num,i,j)break # 跳出當(dāng)前循環(huán)else: # 循環(huán)的 else 部分print num, '是一個(gè)質(zhì)數(shù)'

循環(huán)嵌套:

#第一種嵌套 for iterating_var in sequence:for iterating_var in sequence:statements(s)statements(s) #第二種嵌套 while expression:while expression:statement(s)statement(s)

16.pass語句

pass一般用于占位置。

在 Python 中有時(shí)候會看到一個(gè) def 函數(shù):

def sample(n_samples):pass

該處的 pass 便是占據(jù)一個(gè)位置,因?yàn)槿绻x一個(gè)空函數(shù)程序會報(bào)錯(cuò),當(dāng)你沒有想好函數(shù)的內(nèi)容是可以用 pass 填充,使程序可以正常運(yùn)行。

17.python函數(shù)

python可以定義一個(gè)函數(shù)

可以定義一個(gè)由自己想要功能的函數(shù),以下是簡單的規(guī)則:

  • 函數(shù)代碼塊以 def 關(guān)鍵詞開頭,后接函數(shù)標(biāo)識符名稱和圓括號**()**。
  • 任何傳入?yún)?shù)和自變量必須放在圓括號中間。圓括號之間可以用于定義參數(shù)。
  • 函數(shù)的第一行語句可以選擇性地使用文檔字符串—用于存放函數(shù)說明。
  • 函數(shù)內(nèi)容以冒號起始,并且縮進(jìn)。
  • return [表達(dá)式] 結(jié)束函數(shù),選擇性地返回一個(gè)值給調(diào)用方。不帶表達(dá)式的return相當(dāng)于返回 None。

1.函數(shù)的調(diào)用

定義語法:

def printme( str ):"打印傳入的字符串到標(biāo)準(zhǔn)顯示設(shè)備上"print strreturn printme("測試python函數(shù)")

2.參數(shù)傳遞

在 python 中,類型屬于對象,變量是沒有類型的:

a=[1,2,3] a="Runoob"

以上代碼中,[1,2,3] 是 List 類型,“Runoob” 是 String 類型,而變量 a 是沒有類型,她僅僅是一個(gè)對象的引用(一個(gè)指針),可以是 List 類型對象,也可以指向 String 類型對象。

3.python 傳不可變對象實(shí)例

# -*- coding: UTF-8 -*- def ChangeInt( a ):a = 3b = 2 ChangeInt(b) print b # 結(jié)果是 2

實(shí)例中有 int 對象 2,指向它的變量是 b,在傳遞給 ChangeInt 函數(shù)時(shí),按傳值的方式復(fù)制了變量 b,a 和 b 都指向了同一個(gè) Int 對象,在 a=3 時(shí),則新生成一個(gè) int 值對象3,并讓 a 指向它。

4.python傳可變對象實(shí)例

# -*- coding: UTF-8 -*-# 可寫函數(shù)說明 def changeme( mylist ):"修改傳入的列表"mylist.append([1,2,3,4])print "函數(shù)內(nèi)取值: ", mylistreturn# 調(diào)用changeme函數(shù) mylist = [10,20,30] changeme( mylist ) print "函數(shù)外取值: ", mylist""" 輸出: 函數(shù)內(nèi)取值: [10, 20, 30, [1, 2, 3, 4]] 函數(shù)外取值: [10, 20, 30, [1, 2, 3, 4]] """

上述實(shí)例修改的是值本身

5.參數(shù)

以下是調(diào)用函數(shù)時(shí)可使用的正式參數(shù)類型:

  • 必備參數(shù):必備參數(shù)須以正確的順序傳入函數(shù)。調(diào)用時(shí)的數(shù)量必須和聲明時(shí)的一樣。

  • 關(guān)鍵字參數(shù):關(guān)鍵字參數(shù)和函數(shù)調(diào)用關(guān)系緊密,函數(shù)調(diào)用使用關(guān)鍵字參數(shù)來確定傳入的參數(shù)值。

    def printme( str ):"打印任何傳入的字符串"print strreturn#調(diào)用printme函數(shù) printme( str = "My string")
  • 默認(rèn)參數(shù):調(diào)用函數(shù)時(shí),默認(rèn)參數(shù)的值如果沒有傳入,則被認(rèn)為是默認(rèn)值。

    #可寫函數(shù)說明 def printinfo( name, age = 35 ):"打印任何傳入的字符串"print "Name: ", nameprint "Age ", agereturn#調(diào)用printinfo函數(shù) printinfo( age=50, name="miki" ) printinfo( name="miki" )
  • 不定長參數(shù):可能需要一個(gè)函數(shù)能處理比當(dāng)初聲明時(shí)更多的參數(shù)。

    # 可寫函數(shù)說明 def printinfo( arg1, *vartuple ):"打印任何傳入的參數(shù)"print "輸出: "print arg1for var in vartuple:print varreturn# 調(diào)用printinfo 函數(shù) printinfo( 10 ) printinfo( 70, 60, 50 )

    6.return語句

    若沒有返回值,直接寫return;有返回值就返回返回值

    # 可寫函數(shù)說明 def sum( arg1, arg2 ):# 返回2個(gè)參數(shù)的和."total = arg1 + arg2print "函數(shù)內(nèi) : ", totalreturn total# 調(diào)用sum函數(shù) total = sum( 10, 20 )

四、python文件和異常處理

18.Python 模塊

1.import載入

#import module1[, module2[,... moduleN]] # 導(dǎo)入模塊 import support # 現(xiàn)在可以調(diào)用模塊里包含的函數(shù)了 support.print_func("Runoob")

2.from…import 語句

Python 的 from 語句讓你從模塊中導(dǎo)入一個(gè)指定的部分到當(dāng)前命名空間中。

from fib import fibonacci

3.dir()函數(shù)

dir() 函數(shù)一個(gè)排好序的字符串列表,內(nèi)容是一個(gè)模塊里定義過的名字。

返回的列表容納了在一個(gè)模塊里定義的所有模塊,變量和函數(shù)。

import math content = dir(math) print content """ 輸出: ['__doc__', '__name__', '__package__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'hypot', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc'] """

19.Python 文件I/O

1.讀取鍵盤輸入

Python提供了兩個(gè)內(nèi)置函數(shù)從標(biāo)準(zhǔn)輸入讀入一行文本,默認(rèn)的標(biāo)準(zhǔn)輸入是鍵盤。如下:

  • raw_input
  • input
# -*- coding: UTF-8 -*- #raw_input([prompt]) 函數(shù)從標(biāo)準(zhǔn)輸入讀取一個(gè)行,并返回一個(gè)字符串(去掉結(jié)尾的換行符) str = raw_input("請輸入:") print "你輸入的內(nèi)容是: ", str #input([prompt]) 函數(shù)和 raw_input([prompt]) 函數(shù)基本類似,但是 input 可以接收一個(gè)Python表達(dá)式作為輸入,并將運(yùn)算結(jié)果返回。 str = input("請輸入:") print "你輸入的內(nèi)容是: ", str


2.打開和關(guān)閉文件

現(xiàn)在,已經(jīng)可以向標(biāo)準(zhǔn)輸入和輸出進(jìn)行讀寫。現(xiàn)在,來看看怎么讀寫實(shí)際的數(shù)據(jù)文件。

Python 提供了必要的函數(shù)和方法進(jìn)行默認(rèn)情況下的文件基本操作。你可以用 file 對象做大部分的文件操作。

(1)open 函數(shù)

首先必須先用Python內(nèi)置的open()函數(shù)打開一個(gè)文件,創(chuàng)建一個(gè)file對象,相關(guān)的方法才可以調(diào)用它進(jìn)行讀寫。

file object = open(file_name [, access_mode][, buffering]) # file_name:file_name變量是一個(gè)包含了你要訪問的文件名稱的字符串值。 # access_mode:access_mode決定了打開文件的模式:只讀,寫入,追加等。所有可取值見如下的完全列表。這個(gè)參數(shù)是非強(qiáng)制的,默認(rèn)文件訪問模式為只讀(r)。 # buffering:如果buffering的值被設(shè)為0,就不會有寄存。如果buffering的值取1,訪問文件時(shí)會寄存行。如果將buffering的值設(shè)為大于1的整數(shù),表明了這就是的寄存區(qū)的緩沖大小。如果取負(fù)值,寄存區(qū)的緩沖大小則為系統(tǒng)默認(rèn)。 模式rr+ww+aa+
++++
+++++
創(chuàng)建++++
覆蓋++
指針在開始++++
指針在結(jié)尾++

2.File對象的屬性

一個(gè)文件被打開后,你有一個(gè)file對象,你可以得到有關(guān)該文件的各種信息。

以下是和file對象相關(guān)的所有屬性的列表:

屬性描述
file.closed返回true如果文件已被關(guān)閉,否則返回false。
file.mode返回被打開文件的訪問模式。
file.name返回文件的名稱。
file.softspace如果用print輸出后,必須跟一個(gè)空格符,則返回false。否則返回true。
# 打開一個(gè)文件 #文件IO,在這里遇到一個(gè)小問題。 #一個(gè)文件如果是用“r”打開出現(xiàn)找不到該文件的錯(cuò)誤,用""a+"或“w”方式處理則正常 file = open("mss-project.xls","w",1) file.close() print "文件名:",file.name print "文件是否關(guān)閉:",file.closed print "文件讀取方式:",file.mode print "末尾是否強(qiáng)制加空格",file.softspace """ 輸出: 文件名: mss-project.xls 文件是否關(guān)閉: True 文件讀取方式: w 末尾是否強(qiáng)制加空格 0 """

3.close()方法

File 對象的 close()方法刷新緩沖區(qū)里任何還沒寫入的信息,并關(guān)閉該文件,這之后便不能再進(jìn)行寫入。

當(dāng)一個(gè)文件對象的引用被重新指定給另一個(gè)文件時(shí),Python 會關(guān)閉之前的文件。用 close()方法關(guān)閉文件是一個(gè)很好的習(xí)慣。

語法:

fileObject.close()

4.write()方法

write()方法可將任何字符串寫入一個(gè)打開的文件。需要重點(diǎn)注意的是,Python字符串可以是二進(jìn)制數(shù)據(jù),而不是僅僅是文字。

write()方法不會在字符串的結(jié)尾添加換行符(’\n’):

語法:

fileObject.write(string)

在這里,被傳遞的參數(shù)是要寫入到已打開文件的內(nèi)容。

例子:

#!/usr/bin/python # -*- coding: UTF-8 -*-# 打開一個(gè)文件 fo = open("foo.txt", "w") fo.write( "www.runoob.com!\nVery good site!\n") # 關(guān)閉打開的文件 fo.close()

上述方法會創(chuàng)建foo.txt文件,并將收到的內(nèi)容寫入該文件,并最終關(guān)閉文件。

5.read()方法

read()方法從一個(gè)打開的文件中讀取一個(gè)字符串。需要重點(diǎn)注意的是,Python字符串可以是二進(jìn)制數(shù)據(jù),而不是僅僅是文字。

語法:

fileObject.read([count])

在這里,被傳遞的參數(shù)是要從已打開文件中讀取的字節(jié)計(jì)數(shù)。該方法從文件的開頭開始讀入,如果沒有傳入count,它會嘗試盡可能多地讀取更多的內(nèi)容,很可能是直到文件的末尾。

例子:

這里我們用到以上創(chuàng)建的 foo.txt 文件。

#打開文件 file_read = open("fileRead.txt","a+") #讀到的字符串要寫入的內(nèi)容 write_file = file_read.read() file = open("fileWirte.txt","a+") file.write(write_file) file.close( fo.close()

6.文件定位:

#打開文件 file_read = open("fileRead.txt","a+") #讀到的字符串要寫入的內(nèi)容 write_file = file_read.read() file = open("fileWirte.txt","a+") file.write(write_file) #輸出文件指針位置 position = file.tell() print position # 把指針再次重新定位到文件開頭 position = file.seek(0, 0) string = file.read() print string file_read.close() file.close() """ 輸出: 62 python is a good code language """

7.重命名和刪除文件

import os #重命名文件 os.rename(原來文件,目標(biāo)文件) #刪除文件 os.remove(文件名)

實(shí)例:

import os #重命名文件 os.rename("fileRead.txt","new_fileRead.txt") file = open("new_fileRead.txt","a+") file.close() #刪除文件 os.remove("fileWrite.txt") print file.name

8.mkdir()方法

可以使用os模塊的mkdir()方法在當(dāng)前目錄下創(chuàng)建新的目錄們。需要提供一個(gè)包含了要?jiǎng)?chuàng)建的目錄名稱的參數(shù)。

import os# 創(chuàng)建目錄test os.mkdir("test")

9.chdir()方法

可以用chdir()方法來改變當(dāng)前的目錄。chdir()方法需要的一個(gè)參數(shù)是想設(shè)成當(dāng)前目錄的目錄名稱.

# -*- coding: UTF-8 -*-import os# 將當(dāng)前目錄改為"/home/newdir" os.chdir("/home/newdir")

10.rmdir()方法

rmdir()方法刪除目錄,目錄名稱以參數(shù)傳遞。

在刪除這個(gè)目錄之前,它的所有內(nèi)容應(yīng)該先被清除。

os.remove("?F:\\sd\\sd.txt") os.rmdir("F:\\sd")

11.文件目錄相關(guān)的方法

  • File 對象方法: file 對象提供了操作文件的一系列方法。
    • File對象方法鏈接
  • OS 對象方法: 提供了處理文件及目錄的一系列方法。
    • Os對象方法鏈接
rte.txt","a+") file.write(write_file) #輸出文件指針位置 position = file.tell() print position # 把指針再次重新定位到文件開頭 position = file.seek(0, 0) string = file.read() print string file_read.close() file.close() """ 輸出: 62 python is a good code language """

7.重命名和刪除文件

import os #重命名文件 os.rename(原來文件,目標(biāo)文件) #刪除文件 os.remove(文件名)

實(shí)例:

import os #重命名文件 os.rename("fileRead.txt","new_fileRead.txt") file = open("new_fileRead.txt","a+") file.close() #刪除文件 os.remove("fileWrite.txt") print file.name

8.mkdir()方法

可以使用os模塊的mkdir()方法在當(dāng)前目錄下創(chuàng)建新的目錄們。需要提供一個(gè)包含了要?jiǎng)?chuàng)建的目錄名稱的參數(shù)。

import os# 創(chuàng)建目錄test os.mkdir("test")

9.chdir()方法

可以用chdir()方法來改變當(dāng)前的目錄。chdir()方法需要的一個(gè)參數(shù)是想設(shè)成當(dāng)前目錄的目錄名稱.

# -*- coding: UTF-8 -*-import os# 將當(dāng)前目錄改為"/home/newdir" os.chdir("/home/newdir")

10.rmdir()方法

rmdir()方法刪除目錄,目錄名稱以參數(shù)傳遞。

在刪除這個(gè)目錄之前,它的所有內(nèi)容應(yīng)該先被清除。

os.remove("?F:\\sd\\sd.txt") os.rmdir("F:\\sd")

11.文件目錄相關(guān)的方法

  • File 對象方法: file 對象提供了操作文件的一系列方法。
    • File對象方法鏈接
  • OS 對象方法: 提供了處理文件及目錄的一系列方法。
    • Os對象方法鏈接

五、參考文獻(xiàn)

菜鳥教程-python2

總結(jié)

以上是生活随笔為你收集整理的【Python】【入门】一文带你掌握Python27入门 ~的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。