程式設計語法python Python 基礎語法

2021-10-13 00:19:03 字數 3968 閱讀 4276

2017-06-24 09:50:14

一、變數

python中的變數名的要求和c++基本一致

(1)只能以字母或者下劃線作為開頭,不能以數字開頭

(2)識別符號的其他部分可以有字母下滑線和數字組成,不允許有特殊字元出現如$等(c++中可以有$,且可以放在首位)

(3)不允許有空格,不允許有-分割

python 中只需要給變數賦值而不需要申明具體的資料型別,這是和c++有區別的地方

id(): 得到變數位址

eval(string s): 在記憶體中尋找 s這個變數名,有的話給出他的值

二、判斷語句利用冒號和縮排完成

冒號必須要加上

if ***x:

elif ***x:

else ***x:

#程式**現中文會報錯,需要加上coding=gbk

需要注意的是python中是沒有switch case語句的

#coding=gbk#出現了syntaxerror:non-utf-8 code 錯誤就是編碼問題,需要加上 coding=gbk

if name=="seu":print("東南大學")else:print("其他大學")

name= input("請輸入學校:")if name=="ucb":print("加州伯克利")else:print("其他大學")

三、迴圈語句

冒號必須要加上

1、while ...:

2、for...in:

for..in是另外乙個迴圈語句,它在一串行的物件上逐一使用佇列中的每個專案。else部分是可選的。如果包含else,它總是在for迴圈結束後執行一次,除非遇到break語句。

for i in range(1,5):print(i)else:print("迴圈結束")

range()生成乙個序列,前開後閉,第三個引數是步長,預設值為1

四、運算子和表示式

與c++不同的地方:

1、乘法* 既可以表示兩個數相乘,若是字串乘以數字則是將字串複製多次

2、冪運算** a**b,表示a的b次冪

3、與或非 用的是英文表示 and or not

4、python不支援++ ,--等自增,自減操作

優先順序:

五、函式

def ***(***,***):

使用def關鍵字進行函式的宣告,形參中可以存在有預設值的存在,值得注意的是,和c++一致只能在末尾的引數有預設值

若要修改外部引數值,需要加上global關鍵字,告訴編譯器這是外部引數。

關鍵引數技術:即直接使用引數名進行賦值操作,避免了引數順序,引數個數的問題,顯得更加方便

def fun(x,y=5,z=10):print("x =",x,"y =",y,"z =",z)

fun(3,z=1)

另外,可以使用return語句返回乙個值,使用pass表示空語句

六、文件字串

可以使用__doc__(注意雙下劃線)呼叫檢視函式或者類中第乙個未被賦值的字串,一般用來解釋函式的功能

def fun(x,y=5,z=10):"這個函式的作用是輸出三個數字。"

print("x =",x,"y =",y,"z =",z)print(fun.__doc__)

七、物件導向程式設計

基本語法:

class ***:

def fun(self):

***x

(1)python中的類中元素在預設情況下都是public的,若要將某個資料宣告成私有資料,則要在資料宣告時在名字前加上兩個下劃線,形如:__privateval。

(2)public的資料不需要在函式外單獨宣告,只需要在__init__函式裡加上就可以。

(3)函式外宣告的資料屬於整個類所有,類似於c++裡的static靜態成員資料,呼叫也是使用類名加上成員訪問操作符

(4)類方法都必須加上self引數,這個和c++中的this指標是統一的,只不過必須要顯示的表示出來

(5)__del__析構函式,在物件結束生命期的時候自動呼叫,也可以使用del 函式顯示呼叫,必須要有self

(6)類初始化使用類名加上(),形如: p=***(***)

(7)析構函式一般不用寫,因為python有自動**機制,如果 自己寫的話有一點需要注意的是,如果析構函式中修改了類的資料成員需要同過self.__class__.***來進行修改,否則會報錯。簡單的理解就是析構是針對當前物件的析構,所以需要通過self來進行呼叫與修改。更深層的理解是由於python**機制的問題,由於**的不可控性,如果只寫乙個del,則會導致出錯。如果將所有的物件都顯示呼叫析構函式,則也不會出錯。不過這樣顯然得不償失。

classperson:

population=0def __init__(self,name):

self.name=name

person.population+=1

defshow(self):print("目前的人口數是%d" %person.population)def __del__(self):#寫成person.population-=1就會報錯

self.__class__.population-=1

print("%s析構函式被執行了" %self.name)

p1=person("a")

p2=person("b")

p1.show()delp1

p2.show()

物件導向中的繼承操作:

classperdata:def __init__(self,name,age):

self.name=name

self.age=agedefshow(self):print("姓名:%s 年齡:%d" %(self.name,self.age))classtecdata(perdata):def __init__(self,name,age,salary):#呼叫父類的初始化函式

perdata.__init__(self,name,age)

self.salary=salarydefshow(self):#呼叫父類相應的函式

perdata.show(self)print("工資為%d" %self.salary)

t=tecdata("timhy",22,1)

t.show()

七、檔案輸入輸出

python中使用file類完成相關檔案的輸入和輸出操作

常用的函式:

.open("路徑",模式)

.read() .readline() 讀檔案

.write(***) 寫檔案

模式『r』(預設模式) 讀;『w』 寫(若原始檔裡已經有內容,則清空從頭開始寫);『a』 結尾新增

f=open("e:\\t.txt",'w')

s='''hello world

hello world

hello world'''f.write(s)

f.close()

fin=open("e:/t.txt")

line=fin.readline();while len(line)!=0:#把結尾的換行符去掉,因為讀取時已經將換行符讀取到了

print(line,end='')

line=fin.readline()

貼一段按行讀取csv檔案並輸出的程式,比c++不知道高到**去了。

fin=open("c:/users/yuan/desktop/ee.txt")

fout=open("e:/ee.txt",'w')

line=fin.readline().split(',');while len(line)==3:

s=line[1]+" "+line[2]

fout.writelines(s)

line=fin.readline().split(',');

fin.close();

fout.close();

由於讀取檔案有風險,可能打不開,所以一般需要進行try-except語句進行控制。不過機制的python提供了with open(...) as f:語句可以非常可靠的開啟檔案

middles函式python python 函式

1.特性 1.1.可擴充套件性 1.2.減少 重複 1.3.程式更容易維護 2.函式的引數與區域性變數 2.1.函式裡面的 arges 元組形式儲存,kwarges 字典方式儲存,可以寫成其他,但是 必須寫 2.2.函式裡面入參可以是預設引數,固定引數,位置引數,關鍵字引數,非固定引數的 3.返回值...

discard函式python Python 集合

python 集合讀書之法,在循序而漸進,熟讀而精思。朱熹 集合的概念無序 不能重複 集合中各元素間是無序的,相同元素在集合中唯一存在.即集合是無序組合,它沒有索引和位置的概念,但可變集合中的元素是可以動態新增或者刪除的 集合的型別可變集合 set 不可變集合 frozenset set 函式 可以...

plsql程式設計語法

普通變數 declare u name varchar2 20 zhang san begin dbms output.put line u name end 獲取使用者輸入 declare u name varchar2 20 aaa begin dbms output.put line hell...