1、表達式、語句、程序、函數程序員
一、表達式 就是一個相似於數學公式的東西 ,好比:10 + 5 8 - 4;表達式通常僅僅用了計算一些結果,不會對程序產生實質性的影響編輯器
若是在交互模式中輸入一個表達式,解釋器會自動將表達式的結果輸出函數
二、語句 在程序中語句通常須要完成某種功能,好比打印信息、獲取信息、爲變量賦值。如:print()、input()、a=10 學習
語句的執行通常會對程序產生必定的影響,在交互模式中不必定會輸出語句的執行結果。編碼
三、程序(program) 程序就是由一條一條的語句和一條一條的表達式構成的。命令行
四、函數(function) 函數就是一種語句,函數專門用來完成特定的功能。函數長的形如:xxx()3d
分類:code
內置函數 ,由Python解釋器提供的函數,能夠在Python中直接使用對象
自定義函數 ,由程序員自主的建立的函數,當咱們須要完成某個功能時,就能夠去調用內置函數,或者自定義函數 。
構成:
參數: ()中的內容就是函數的參數,函數中能夠沒有參數,也能夠有多個參數,多個參數之間使用","隔開blog
返回值 :返回值是函數的返回結果,不是全部的函數都有返回值。
2、書寫規範
一、在Python中嚴格區分大小寫;
二、Python中的每一行就是一條語句,每條語句以換行結束,不像其餘語言以「;」結尾;
三、Python中每一行語句不要過長(規範中建議每行不要超過80個字符),在sublime編輯器設置不要超過80個字符,"rulers":[80],
四、一條語句能夠分多行編寫,多行編寫時語句後邊以‘’\‘’結尾;
五、Python是縮進嚴格的語言,因此在Python中不要隨便寫縮進;
六、在Python中使用 # 來表示註釋,# 後的內容都屬於註釋,註釋的內容將會被解釋器所忽略,註釋要求簡單明瞭,通常習慣上#後邊會跟着一個空格。
3、基本語法
一、字面量(常量)和變量
字面量就是一個一個的值,好比:1,2,3,4,5,6,‘HELLO’,所表示的意思就是它的字面的值,在程序中能夠直接使用字面量;
變量(variable)變量能夠用來保存字面量,而且變量中保存的字面量是不定的,變量自己沒有任何意思,它會根據不一樣的字面量表示不一樣的意思。
通常咱們在開發時,不多直接使用字面量,都是將字面量保存到變量中,經過變量來引用字面量。
二、變量和標識符
變量:
Python中使用變量,不須要聲明(和類型),直接爲變量賦值便可,a = 10。
不能使用沒有進行過賦值的變量,若是使用沒有賦值過的變量,會報錯 NameError: name 'b' is not defined。
Python是一個動態類型的語言,能夠爲變量賦任意類型的值,也能夠任意修改變量的值,a = 'hello',也是對的。
標識符:
在Python中全部能夠自主命名的內容都屬於標識符,好比:變量名、函數名、類名,標識符必須遵循標識符的規範
(1)、標識符中能夠含有字母、數字、_,可是不能使用數字開頭,例子:a_1 _a1 _1a
(2)、標識符不能是Python中的關鍵字和保留字,也不建議使用Python中的函數名(如print)做爲標識符,由於這樣會致使函數被覆蓋。
(3)、命名規範:若是使用不符合標準的標識符,將會報錯 SyntaxError: invalid syntax
下劃線命名法,全部字母小寫,單詞之間使用_分割,如:max_length, min_length, hello_world, xxx_yyy_zzz
帕斯卡命名法(駝峯命名法),首字母大寫,每一個單詞開頭字母大寫,其他字母小寫,如:MaxLength, MinLength, HelloWorld, XxxYyyZzz
三、數據類型
指的就是變量的值的類型,也就是能夠爲變量賦哪些值
分類:數值型 (整形、浮點型、複數), 布爾型, 字符型, 空值
在Python數值分紅了三種:整數、浮點數(小數)、複數
(1)int型,在Python中全部的整數都是int類型,a = 10 b = 20,Python中的整數的大小沒有限制,能夠是一個無限大的整數,不用擔憂內存溢出。
如 c = 9999999999999999999 ** 100是對的,若是數字的長度過大,可使用下劃線做爲分隔符,c = 123_456_789,下劃線自動忽略。
d = 0123 ,10進制的數字不能以0開頭,print輸出時,其餘進制的整數,只要是數字打印時必定是以十進制的形式顯示的。
# 二進制 0b開頭,c = 0b10 ,十進制的2
# 八進制 0o開頭,c = 0o10,十進制的8
# 十六進制 0x開頭,c = 0x10,十進制的16
也能夠經過運算符來對數字進行運算,而且能夠保證整數運算的精確,如,c = 100,c = c + 3
(2)float型, 浮點數(小數),在Python中全部的小數都是float類型,c = 1.23
對浮點數進行運算時,可能會獲得一個不精確的結果,如c = 0.1 + 0.2 ,可能會輸出0.30000000000000004
字符型
(3)string型,字符串(str)用來表示一段文本信息,字符串是程序中使用的最多的數據類型,在Python中字符串須要使用引號引發來。
如,s = 'hello',字符串必須使用引號引發來,不使用不是字符串。引號能夠是雙引號,也能夠是單引號,可是注意不要混着用
s = 'hello' s = "hello" 可是s = 'hello" 引號不能混合使用,會出現 SyntaxError: EOL while scanning string literal。
注意: 相同的引號之間不能嵌套
錯誤示範, s = "子曰:"學而時習之,樂呵樂呵!"",正確的,s = '子曰:"學而時習之,樂呵樂呵!"'
# 長字符串,單引號和雙引號不能跨行使用
s = '鋤禾日當午,\
汗滴禾下土,\
誰知盤中餐,\
粒粒皆辛苦' , 這樣打印出來都在1行。
因此使用三重引號來表示一個長字符串 3個單引號''' 或3個雙引號""",三重引號能夠換行,而且會保留字符串中的格式
s = '''鋤禾日當午,
汗滴禾下土,
誰知盤中餐,
粒粒皆辛苦''',這樣打印出在4行
# 轉義字符,可使用 \ 做爲轉義字符,經過轉義字符,能夠在字符串中使用一些特殊的內容
\' 表示', \" 表示",\t 表示製表符,\n 表示換行符,\\ 表示反斜槓,\uxxxx 表示Unicode編碼,UTF-8編碼的萬國碼。
s = "子曰:\"學而時習之,\\\\n樂呵樂呵!\""
s = '\u2250'
#格式化字符串
(1)字符串之間也能夠進行加法運算, 若是將兩個字符串進行相加,則會自動將兩個字符串拼接爲一個字符串。
如,a = 'abc' + 'haha' + '哈哈',輸出abchaha哈哈
print("a = "+a) , 這種寫法在Python中不常見,經常使用的是這個 print('a =',a)
字符串不能和其餘的類型進行加法運算,若是作了會出現異常 TypeError: must be str, not int。例如a=12, print("a = "+a) ,會報錯,由於前邊是
字符串後邊是整形變量。
(2)在建立字符串時,能夠在字符串中指定佔位符
%s 在字符串中表示任意字符
%f 浮點數佔位符
%d 整數佔位符
如,b = 'Hello %s'%'孫悟空' ,輸出Hello 孫悟空,用孫悟空填充%s
b = 'hello %s 你好 %s'%('tom','孫悟空')
b = 'hello %3.5s'%'abcdefg' # %3.5s字符串的長度限制在3-5之間,不夠在前邊填空格,多了砍掉後邊。
b = 'hello %s'%123.456 str是萬能的,填整形和浮點型均可以。
b = 'hello %.2f'%123.456 保留2位小數,自動四捨五入。
b = 'hello %d'%123.95 直接把小數給舍掉。
b = '呵呵'
print('a = %s'%a)
(3)格式化字符串,能夠經過在字符串前添加一個f(引號前邊)來建立一個格式化字符串
在格式化字符串中能夠直接嵌入變量如 a和b
c = f'hello {a} {b}'
print(f'a = {a}')
練習 建立一個變量保存你的名字,而後經過四種格式化字符串的方式,在命令行中顯示,歡迎 xxx 光臨!
name='孫悟空'
print("歡迎"+name+"光臨!")
print("歡迎",name,"光臨!")
print('歡迎%s光臨!'%name)
print(f'歡迎{name}光臨!')
# 字符串的複製(將字符串和數字相乘)
a = 'abc' * 在語言中表示乘法
若是將字符串和數字相乘,則解釋器會將字符串重複指定的次數並返回
a = a * 20
print(a) 字符串複製20次輸出,Python中獨有
(4)布爾值(bool)
布爾值主要用來作邏輯判斷,布爾值一共有兩個 True (真)和 False(假)
a = True
a = False
print('a =',a)
布爾值實際上也屬於整型,True就至關於1,False就至關於0
print(1 + False) ,輸出爲1
(5) None(空值)None專門用來表示不存在
b = None
print(b) 輸出爲None
擴展-1:類型檢查
a = 123 數值 print('a =',a)
b = '123' 字符串 print('b =',b)
type()函數用來檢查值的類型, 該函數會將檢查的結果做爲返回值返回,能夠經過變量來接收函數的返回值。
c = type('123')
c = type(a)
print(type(b)) 輸出<class 'str'>
print(type(1)) 輸出 <class 'int'>
print(type(1.5)) 輸出<class 'float'>
print(type(True)) 輸出 <class 'bool'>
print(type('hello')) 輸出<class 'str'>
print(type(None)) 輸出 <class 'NoneType'>
擴展-2:類型裝換(將一個類型的對象轉換爲其餘對象,類型轉換不是改變對象自己的類型,而是根據當前對象的值建立一個新對象)
類型轉換四個函數 int()、 float()、 str()、 bool()
(1)、 int() 能夠用來將其餘的對象轉換爲整型
規則:
布爾值:True -> 1 False -> 0
浮點數:直接取整,省略小數點後的內容
字符串:合法的整數字符串,直接轉換爲對應的數字。若是不是一個合法的整數字符串(如小數字符串'11.5'),則報錯 ValueError: invalid literal for int()
with base 10: '11.5',對於其餘不可轉換爲整型的對象,直接拋出異常 ValueError。
(2)、 float() 和 int()基本一致,不一樣的是它會將對象轉換爲浮點數
(3)、 str() 能夠將對象轉換爲字符串
True -> 'True'
False -> 'False'
123 -> '123'
(4)、bool() 能夠將對象轉換爲布爾值,任何對象均可以轉換爲布爾值
規則:對於全部表示空性的對象都會轉換爲False,其他的轉換爲True
哪些表示的空性:0 、 None 、 ''
例如:
a = True
調用int()來將a轉換爲整型,int()函數不會對原來的變量產生影響,他是對象轉換爲指定的類型並將其做爲返回值返回
若是但願修改原來的變量,則須要對變量進行從新賦值。
a = int(a)
a = False
a = int(a)
a = '123'
a = int(a)
a = 11.6
a = int(a)
a = '11.5'
a = int(a)
a = None
a = int(a)
a = 1
a = float(a)
a = False
a = float(a)
a = 123
a = str(a)
a = None
a = bool(a)
print('a =',a)
print('a的類型是',type(a))
b = 456
print('hello'+str(b))
四、 對象(object)
Python是一門面向對象的語言,一切皆對象!程序運行當中,全部的數據都是存儲到內存當中而後再運行的,對象就是內存中專門用來存儲指定數據的
一塊區域,對象實際上就是一個容器,專門用來存儲數據 ,如數值、字符串、布爾值、None都是對象
結構:每一個對象中都要保存三種數據
一、id(標識)
id用來標識對象的惟一性,每個對象都有惟一的id,對象的id就至關於人的身份證號同樣,能夠經過id()函數來查看對象的id,id是由解析器生成的,
在CPython中,id就是對象的內存地址, 對象一旦建立,則它的id永遠不能再改變。
二、type(類型)
類型用來標識當前對象所屬的類型,好比:int str float bool。類型決定了對象有哪些功能,經過type()函數來查看對象的類型, Python是一門強類型的語言,
對象一旦建立類型便不能修改。
三、 value(值)
值就是對象中存儲的具體的數據,對於有些對象值是能夠改變的;
對象分紅兩大類,可變對象和不可變對象,可變對象的值能夠改變,不可變對象的值不能改變,以前學習的對象都是不可變對象。
變量和對象:
對象並無直接存儲到變量中,在Python中變量更像是給對象起了一個別名,變量中存儲的不是對象的值,而是對象的id(內存地址),
當咱們使用變量時,實際上就是在經過對象id在查找對象,變量中保存的對象(的地址即id),只有在爲變量從新賦值時纔會改變,變量和變量之間是相互獨
立的,修改一個變量不會影響另外一個變量.。