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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python入门-基础语法笔记

發(fā)布時間:2024/3/12 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python入门-基础语法笔记 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.vi技巧:

中英切換:shift
wq = x

2.注釋

單行:#
多行:三個單引號或三個雙引號

""" print("hello world") """

3.編碼

文件中有中文,不管是否為注釋,python2執(zhí)行報錯。
解決:程序首行加 #coding=utf-8 或 #*-* coding:utf-8 *-*

4.輸入

name = input("請輸入名字:")

5.輸出

print("name is %s"%name) print("name:%s, age:%d"%(name,age)) print("name:{0}, age:{1}".format(name,age)) #(標號可不寫,為默認順序) print("name:{name}, age:{age}".format(name = "ss",age = 23)) import math print('常量 PI 的值近似為 {0:.3f}。'.format(math.pi)) #常量 PI 的值近似為 3.142。table = {'Google': 1, 'Runoob': 2, 'Taobao': 3} print('Runoob: {0[Runoob]:d}; Google: {0[Google]:d}; Taobao: {0[Taobao]:d}'.format(table)) #Runoob: 2; Google: 1; Taobao: 3table = {'Google': 1, 'Runoob': 2, 'Taobao': 3} print('Runoob: {Runoob:d}; Google: {Google:d}; Taobao: {Taobao:d}'.format(**table)) #Runoob: 2; Google: 1; Taobao: 3

6.類型轉(zhuǎn)換

a = int("3")

7.python2與python3

  • 編碼。
  • python2中input的內(nèi)容當做執(zhí)行的內(nèi)容,python3當做字符串。如a = input(""). python2中的raw_input相當于python3中的input。
  • python2 中支持 <> 是不等于的意思,python3不支持,應(yīng)該 != 表示

8.運算符

"a" * 5 = "aaaaa" 2 ** 3 = 8 5 / 2 = 2.5 5 // 2 = 2 #(取商) 5 % 2 = 1 #(取余)

9.邏輯運算符

and , or

10.流程

if 1 > 2:print("1") elif 2 == 3:print("2") else:print("3")while 條件: 執(zhí)行for i int str: 執(zhí)行注: i++,++i在python中不允許使用。

11.字符串(不可變)

  • 格式化
>>>'a: %s, b:%s' %s ('a', 'b') 'a: a, b: b'>>> '{}, {} and {}'.format("first", "second", "third") 'first, second and third'>>> '{3} {0} {2} {1} {3} {0}'.format('be', 'not', 'or', 'to') 'to be or not to be'>>> "{name} is approximately {value:.2f}.".format(value=pi,name="π") 'π is approximately 3.14.'#python3 中,同名可省略 >>> from math import e >>> f"Euler's constant is roughly {e}.">>> f"Euler's constant is roughly {e}.".format(e=e)#格式 >>> 'the number is {num:f}'.format(num=2) 'the number is 2.000000'
  • 類型轉(zhuǎn)換:
int("100"), str(100)
  • 長度:
len(str)
  • 字符串連接:
a = b + c #或者 a = "===%s==="%(b+c) #或者 a = "==={}===".format(b+c)
  • 切片:
str = "dasfaf" str[2:4] #(取得2到3的), str[2:] #(到最后), str[2:-1:2] #(步長2,隔一個取一個)
  • 逆序:
str = "abcdefABCDEF" str[0:] # out:"abcdefABCDEF" str[-1:] # out:"F" str[-1:0] # out:"" str[-1:0:-1] # out:"FEDCBAfedcb" str[-1::-1], str[::-1] # out:"FEDCBAfedcba"
  • 常見操作
find: str.find("abc") # 從左向右有返回第一個匹配字符串的起始下標,沒有返回-1。rfind():從右向左。 str.index("abc") #找到返回起始下標,沒有拋出異常。 存在rindex(). str.count("abc") #匹配的個數(shù)。str.replace("abc", "def") #把左邊的替換成右邊的同java, str.replace("abc", "def",1) #第三個參數(shù)是從左到右替換個數(shù)。 str.split(" ") #字符串分割 str.capitalize() #字符串的第一個字母大寫。 str.title() #字符串的每個單詞的首字母大寫。 str.startswith("abc"), str.endswith("abc") #是否以此字符串開頭或結(jié)尾. str.lower() str.uper() #所有的字母小寫和大寫。 str.center(50) #居中顯示,行總長50 " abc " str.ljust(50), str.rjust(50) #左(右)對齊str.lstrip() #刪除左邊空格 str.rstrip() #右邊空格 str.strip() #刪除兩端空格.#center居中 >>> 'hello world'.center(20) ' hello world ' >>> 'hello world'.center(20, '*') '****hello world*****'

12.列表 (類似數(shù)組,可變,針對自身的變化)

["zhangsan","lisi"] #定義 names = ["zhangsan", "lisi", 3.14] #列表中的數(shù)據(jù)可以是不同的數(shù)據(jù)類型。 可以下標,和切片。 #增 names.append("abc") #-->插入到最后; names.insert(0, "bcc") #-->插入指定位置。 names = names1 + names2 #兩個列表用連接符 names1.extend(names2) #擴充#刪 names.pop() #-->刪除最后一個; names.remove("lisi") #-->根據(jù)內(nèi)容刪除; del names[0] #-->下標刪除 #改 names[0] = "abc" #查 name[1:] # "lisi" in, not in #是否存在 (if "zhangsan" in names:) #可以for... in 循環(huán)遍歷len(names) #元素個數(shù)#注意:append添加的元素;extend連接的列表# 其他 ''.join(list) # 列表轉(zhuǎn)字符串 names.sort() #排序,改變原結(jié)構(gòu); names.sort(reverse=True) 反向順序

運算符

表達式結(jié)果描述
len([1, 2, 3])3計算元素個數(shù)
[1, 2, 3] + [4, 5, 6][1, 2, 3, 4, 5, 6]連接
[‘Hi!’] * 4[‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’]復(fù)制
3 in [1, 2, 3]True元素是否存在
for x in [1, 2, 3]: print(x, end=" ")1 2 3迭代
params = {"server":"mpilgrim", "database":"master", "uid":"sa", "pwd":"secret"} ["%s=%s" % (k, v) for k, v in params.items()] ['server=mpilgrim', 'uid=sa', 'database=master', 'pwd=secret'] ";".join(["%s=%s" % (k, v) for k, v in params.items()]) 'server=mpilgrim;uid=sa;database=master;pwd=secret'

13.字典(可變)

a = {"name":"yy", "age": 12}#增 a["name"] = "yy" #直接寫key-value #刪 del a["name"] #改 a["name"] = "zz" #相同key的值覆蓋。 #查: a["name"], a.get("name")

for-else

#for中沒有break,則else一定會執(zhí)行 for temp in strs: print(temp) else: print("")

const 修改變量為不可變。
字典常見操作

len(a) #鍵值對的個數(shù)a.keys() #["name","age"] (pyhton2) #dict_keys(["name","age"])(pyhton3)返回key的列表 if "abc" in a.keys(): #判斷是否存在某個keyprint("") a.values() #返回value的列表

14.元組(類似列表,不可變)

列表可以增刪改,元組不能改

tup1 = (); #空元組 >>> tup1 = (50) >>> type(tup1) # 不加逗號,類型為整型 <class 'int'>>>> tup1 = (50,) >>> type(tup1) # 加上逗號,類型為元組 <class 'tuple'>

訪問:

tup1 = ('Google', 'Runoob', 1997, 2000) tup2 = (1, 2, 3, 4, 5, 6, 7 )print ("tup1[0]: ", tup1[0]) # Google print ("tup2[1:5]: ", tup2[1:5]) #(2, 3, 4, 5)

修改:

tup1 = (12, 34.56); tup2 = ('abc', 'xyz')# 以下修改元組元素操作是非法的。 # tup1[0] = 100# 創(chuàng)建一個新的元組 tup3 = tup1 + tup2; print (tup3) #(12, 34.56, 'abc', 'xyz')

刪除

tup = ('Google', 'Runoob', 1997, 2000)print (tup) del tup;

運算符

表達式結(jié)果描述
len((1, 2, 3))3計算元素個數(shù)
(1, 2, 3) + (4, 5, 6)(1, 2, 3, 4, 5, 6)連接
(‘Hi!’) * 4(‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’)復(fù)制
3 in (1, 2, 3)True元素是否存在
for x in (1, 2, 3): print x,1 2 3迭代

類似拆包

a = (11,12) b = a b #out (11,12) c,d = a #類似拆包 c #out 11 d #out 12#例如 info = {"name":"ysw", "age":24} for temp in info:print(temp) #("name":"ysw") #("age":24) for temp in info.items():print("key=%s,value=%s"%(temp[0],temp[1])) #or for a,b in info.items():print("key=%s,value=%s"%(a,b))

遍歷技巧

#在字典中遍歷時,關(guān)鍵字和對應(yīng)的值可以使用 items() 方法同時解讀出來 knights = {'gallahad': 'the pure', 'robin': 'the brave'} for k, v in knights.items():print(k, v)#gallahad the pure #robin the brave#在序列中遍歷時,索引位置和對應(yīng)值可以使用 enumerate() 函數(shù)同時得到 >>> for i, v in enumerate(['tic', 'tac', 'toe']): ... print(i, v) ... 0 tic 1 tac 2 toe#同時遍歷兩個或更多的序列,可以使用 zip() 組合 >>> questions = ['name', 'quest', 'favorite color'] >>> answers = ['lancelot', 'the holy grail', 'blue'] >>> for q, a in zip(questions, answers): ... print('What is your {0}? It is {1}.'.format(q, a)) ... What is your name? It is lancelot. What is your quest? It is the holy grail. What is your favorite color? It is blue.#要反向遍歷一個序列,首先指定這個序列,然后調(diào)用 reversed() 函數(shù) >>> for i in reversed(range(1, 10, 2)): ... print(i) ... 9 7 5 3 1#要按順序遍歷一個序列,使用 sorted() 函數(shù)返回一個已排序的序列,并不修改原值 >>> basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana'] >>> for f in sorted(set(basket)): ... print(f) ... apple banana orange pear

15.函數(shù)

def abc():print("")abc() #注意: 函數(shù)的定義需要在函數(shù)的調(diào)用之前,否則報錯。

可更改與不可更改對象:
在python中,strings,tuples和numbers是不可更改對象,list.dict等則是可更改對象。

  • 不可變類型:變量賦值 a=5后在賦值a=10,生成了新的對象,原對象丟棄。
  • 可變類型:變量賦值 la=[1,2,3,4] 后再賦值 la[2]=5 則是將 list la 的第三個元素值更改,本身la沒有動,只是其內(nèi)部的一部分值被修改了。

python 函數(shù)的參數(shù)傳遞:

  • 不可變類型:類似 c++ 的值傳遞,如 整數(shù)、字符串、元組。如fun(a),傳遞的只是a的值,沒有影響a對象本身。比如在 fun(a)內(nèi)部修改 a 的值,只是修改另一個復(fù)制的對象,不會影響 a 本身
  • 可變類型:類似 c++ 的引用傳遞,如 列表,字典。如 fun(la),則是將 la 真正的傳過去,修改后fun外部的la也會受影響
#默認函數(shù)參數(shù)def printinfo( name, age = 35 ):"打印任何傳入的字符串"print ("名字: ", name);print ("年齡: ", age);return;printinfo( age=50, name="runoob" ); print ("------------------------") printinfo( name="runoob" );#名字: runoob #年齡: 50 #------------------------ #名字: runoob #年齡: 35#可變參數(shù) def printinfo( *vartuple ):"打印任何傳入的參數(shù)"print ("輸出: ")for var in vartuple:print (var)return;printinfo(10,32,22)#匿名函數(shù)(lambda創(chuàng)建匿名函數(shù))sum = lambda arg1, arg2: arg1 + arg2;print ("相加后的值為 : ", sum( 10, 20 )) print ("相加后的值為 : ", sum( 20, 20 ))#global關(guān)鍵字修改外部作用域變量 num = 1 def fun1():global num # 需要使用 global 關(guān)鍵字聲明print(num) num = 123print(num) fun1()#1 #123#nonlocal 修改嵌套作用域變量 def outer():num = 10def inner():nonlocal num # nonlocal關(guān)鍵字聲明num = 100print(num)inner()print(num) outer()#100 #100

16.迭代器和生成器

字符串,列表和元組對象都可用于創(chuàng)建迭代器。

list = [1,2,3,4] it = iter(list) print(next(it)) #1 print(next(it)) #2#遍歷 #1 for x in it:print(x, end = "") # 1 2 3 4#2 while True:try:print(next(it))except StopIteration:sys.exit()

生成器(TODO: 待理解)
yield的函數(shù),生成器是返回迭代器的函數(shù),只能用于迭代操作。

import sysdef fibonacci(n): # 生成器函數(shù) - 斐波那契a, b, counter = 0, 1, 0while True:if (counter > n): returnyield aa, b = b, a + bcounter += 1 f = fibonacci(10) # f 是一個迭代器,由生成器返回生成while True:try:print (next(f), end=" ")except StopIteration:sys.exit() # 0 1 1 2 3 5 8 13 21 34 55

17.模塊

為此 Python 提供了一個辦法,把這些定義存放在文件中,為一些腳本或者交互式的解釋器實例使用,這個文件被稱為模塊。

  • import語句,想使用 Python 源文件,只需在另一個源文件里執(zhí)行 import 語句。
#!/usr/bin/python3 # Filename: support.pydef print_func( par ):print ("Hello : ", par)return #!/usr/bin/python3 # Filename: test.py# 導(dǎo)入模塊 import support #文件名# 現(xiàn)在可以調(diào)用模塊里包含的函數(shù)了 support.print_func("Runoob")
  • from…import語句,從模塊中導(dǎo)入一個指定的部分到當前命名空間中。
#導(dǎo)入模塊 fibo 的 fib 函數(shù) from fibo import fib, fib2 >>> fib(500)
  • From…import* 語句,把一個模塊的所有內(nèi)容全都導(dǎo)入到當前的命名空間。
  • 模塊除了方法定義,還可以包括可執(zhí)行的代碼。這些代碼一般用來初始化這個模塊。這些代碼只有在第一次被導(dǎo)入時才會被執(zhí)行。
  • _name_屬性,一個模塊被另一個程序第一次引入時,其主程序?qū)⑦\行。如果我們想在模塊被引入時,模塊中的某一程序塊不執(zhí)行,可以用__name__屬性。
#!/usr/bin/python3 # Filename: using_name.pyif __name__ == '__main__':print('程序自身在運行') else:print('我來自另一模塊')
  • Python 會根據(jù) sys.path 中的目錄來尋找這個包中包含的子目錄。
  • 目錄只有包含一個叫做 init.py 的文件才會被認作是一個包,主要是為了避免一些濫俗的名字(比如叫做 string)不小心的影響搜索路徑中的有效模塊。
  • 推薦:from Package import specific_submodule

18.文件

open()方法返回文件,第二個參數(shù)為文件打開方式。默認只讀r。w寫,a追加…

f = open("/tmp/test.txt","w")f.write("人生苦短,我用python!")f.close()
  • f.read(size) 讀取文件內(nèi)容,size為空或負數(shù)則全部返回。
  • f.readline() f.readline() 會從文件中讀取單獨的一行。換行符為 ‘\n’。f.readline() 如果返回一個空字符串, 說明已經(jīng)已經(jīng)讀取到最后一行。
  • f.readlines() 讀取文件所有行,并以列表返回。
  • f.write(string) 將 string 寫入到文件中, 然后返回寫入的字符數(shù)。如果要寫入一些不是字符串的東西, 那么將需要先進行轉(zhuǎn)換。

19.類

  • 類方法
class MyClass:i = 12345#類方法必須有一個額外的第一個參數(shù),慣例是self,不固定;代表的的類的實例而非類def f(self):return "hello world"x = MyClass() print("MyClass 類的屬性 i 為:", x.i) print("MyClass 類的方法 f 輸出為:", x.f())
  • 構(gòu)造方法
class Complex:#構(gòu)造方法def __init__(self, realpart, imagpart):self.r = realpartself.i = imagpart x = Complex(3.0, -4.5) print(x.r, x.i) # 輸出結(jié)果:3.0 -4.5 #類定義 class people:#定義基本屬性name = ''age = 0#定義私有屬性,私有屬性在類外部無法直接進行訪問__weight = 0#定義構(gòu)造方法def __init__(self,n,a,w):self.name = nself.age = aself.__weight = wdef speak(self):print("%s 說: 我 %d 歲。" %(self.name,self.age))# 實例化類 p = people('runoob',10,30) p.speak()
  • 繼承
#類定義 class people:#定義基本屬性name = ''age = 0#定義私有屬性,私有屬性在類外部無法直接進行訪問__weight = 0#定義構(gòu)造方法def __init__(self,n,a,w):self.name = nself.age = aself.__weight = wdef speak(self):print("%s 說: 我 %d 歲。" %(self.name,self.age))#單繼承示例 class student(people):grade = ''def __init__(self,n,a,w,g):#調(diào)用父類的構(gòu)函people.__init__(self,n,a,w)self.grade = g#覆寫父類的方法def speak(self):print("%s 說: 我 %d 歲了,我在讀 %d 年級"%(self.name,self.age,self.grade))#另一個類,多重繼承之前的準備 class speaker():topic = ''name = ''def __init__(self,n,t):self.name = nself.topic = tdef speak(self):print("我叫 %s,我是一個演說家,我演講的主題是 %s"%(self.name,self.topic))#多重繼承 class sample(speaker,student):a =''def __init__(self,n,a,w,g,t):student.__init__(self,n,a,w,g)speaker.__init__(self,n,t)test = sample("Tim",25,80,4,"Python") test.speak() #方法名同,默認調(diào)用的是在括號中排前地父類的方法

20.正則表達式

  • re.match與re.search的區(qū)別
    re.match只匹配字符串的開始,如果字符串開始不符合正則表達式,則匹配失敗,函數(shù)返回None;而re.search匹配整個字符串,直到找到一個匹配。
import reline = "Cats are smarter than dogs";matchObj = re.match( r'dogs', line, re.M|re.I) if matchObj:print ("match --> matchObj.group() : ", matchObj.group()) else:print ("No match!!")matchObj = re.search( r'dogs', line, re.M|re.I) if matchObj:print ("search --> matchObj.group() : ", matchObj.group()) else:print ("No match!!")#No match!! #search --> matchObj.group() : dogs
  • 檢索和替換
import rephone = "2004-959-559 # 這是一個電話號碼"# 刪除注釋 num = re.sub(r'#.*$', "", phone) print ("電話號碼 : ", num)# 移除非數(shù)字的內(nèi)容 num = re.sub(r'\D', "", phone) print ("電話號碼 : ", num)#電話號碼 : 2004-959-559 #電話號碼 : 2004959559

總結(jié)

以上是生活随笔為你收集整理的Python入门-基础语法笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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