天天看點

拼命Girl_Python筆記(二):Python基本文法

1.基本文法

1.1基本:

1.在Python中嚴格區分大小寫
 2.Python中的每一行就是一條語句,每條語句以換行結束
 3.Python中每一行語句不要過長(規範中建議每行不要超過80個字元)"rulers":[80],
 4.一條語句可以分多行編寫,多行編寫時語句後邊以\結尾  
 5.Python是縮進嚴格的語言,是以在Python中不要随便寫縮進  
 6.在Python中使用#來表示注釋,#後的内容都屬于注釋,注釋的内容将會被解釋器所忽略
        我們可以通過注釋來對程式進行解釋說明,一定要養成良好的編寫注釋的習慣
        注釋要求簡單明了,一般習慣上#後邊會跟着一個空格
           

基本文法:

print('he\
aaa\
aaa')

# 這是一個列印語句,請你看見了不要慌張
# 這是一個注釋
# 注釋會被解釋器所忽略
# print(123+456) 這行代碼被注釋了,将不會執行
print('abc') # 這是一個單行注釋
           

1.2 編碼

預設情況下,python3源檔案以UTF-8編碼,所有字元串都是unicode字元串。同時可以指定源檔案的不同編碼
		檔案開頭加上
		# -*- coding: UTF-8 -*-
		# coding=utf-8(等号兩邊不能有空格)
		允許在源檔案中使用utf-8字元集中的字元編碼,對應的适合語言為中文等   
           

1.3 變量和辨別符

變量:Python中使用變量,不需要聲明,直接為變量指派即可

(1) 不能使用沒有進行過指派的變量

(2)Python是一個動态類型的語言,可以為變量賦任意類型的值,也可以任意修改變量的值

Python中的變量和Java中的比較

'''
private String a = "hello"
變量名 = "value"
int[] arr = {1,2}
# 值傳遞和引用傳遞
public void swap(int[]arr,int a,int b){
	a = temp;
	a = b
	b = temp
}
'''
'''
a = "abc"
b = 10
c = 2.5
b = a
'''
'''
a,b,c = 1,2,"abc"
'''
# 交換變量資料
'''
a = 1
b = 2
a,b = b,a
a = b
b = a
print(a,b)
'''
'''
String s = "abc"
str = s.subString(0,2)
'''
# python2中有long,python3中沒有long全部都是int
# 沒有double,全部都是float
'''
a = 1000000000000
b = 2.5
c = True
d = False
'''
# print(type(a))
# print(type(b))
# True是1,False是0
'''
print(c)
print(a+c)
print(a+d)
'''
# j定義變量時,前面不能有數字,隻要有數字全部識别成複數
'''
e = 2 + 2j
f = 0 + 1j
print(f**2)
String a = "aa"
a = null
'''
import math
a = 9
print(math.e)
           

多變量指派:

Python允許你同時為多個變量指派。例如:
		a = b = c = 1
		以上執行個體,建立一個整型對象,值為 1,從後向前指派,三個變量被賦予相同的數值。

		可以為多個對象指定多個變量。例如:

		a, b, c = 1, 2, "runoob"
		a,b = b,a  			# 變量的交換
		以上執行個體,兩個整型對象 1 和 2 的配置設定給變量 a 和 b,字元串對象 "runoob" 配置設定給變量 c。

		注意:
		a = 10
		b = 20
		a,b = b,a+5
		print(a,b)

		結果:a = 20,b=15

           

辨別符:

  • 1.辨別符中可以含有字母、數字、_,但是不能使用數字開頭

    标題例子:a_1 _a1 _1a

  • 辨別符不能是Python中的關鍵字和保留字

    也不建議使用Python中的函數名作為辨別符,因為這樣會導緻函數被覆寫

  • 命名規範:

    在Python中注意遵循兩種命名規範:

    下劃線命名法

    所有字母小寫,單詞之間使用_分割

    max_length min_length hello_world xxx_yyy_zzz

    帕斯卡命名法(大駝峰命名法)

    首字母大寫,每個單詞開頭字母大寫,其餘字母小寫

    MaxLength MinLength HelloWorld XxxYyyZzz

    如果使用不符合标準的辨別符,将會報錯 SyntaxError: invalid syntax

_b123 = 20
# print(_b123)

# print = 123
# print(print)
           

1.4 注釋

單行注釋:#
多行注釋:'''	'''
           

1.5 關鍵字和保留字

import keyword
print(len(keyword.kwlist))	#33
print(keyword.kwlist)		#列印關鍵字
		'''['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']'''
           

簡介:

1.and:表示邏輯‘與’
2.del:用于list清單操作,删除一個或者連續幾個元素。
3.from:導入相應的子產品,用import或者from...import
4.not:表示邏輯‘非’
5.while:while循環,允許重複執行一塊語句,一般無限循環的情況下用它
6.as:as單獨沒有意思,是這樣使用:with....as用來代替傳統的try...finally文法的。
			擴充:with...as...用法
				with open('./hello world') as f:
				data = f.read()
				print(data)
			class Demo(object):
				def t(self):
					print("haha1")

			class Test(object):
				def __enter__(self):		# 1
					print('這是enter')
					return Demo()
				def __exit__(self,a,b,c):
					print('這是exit')		# 3
				def t(self):
					print("haha")

			with Test() as t:
				t.t()						# 2

7.elif:和if配合使用的,if語句中的一個分支用elif表示。
8.global :定義全局變量
		例如:
		name = 10
		age = 20
		def test():
			global name
			age = 30
			name = 'aa'
			#print(name)
		test()
		print(name)		# 'aa'
		print(age)		# 20

9.or:表示邏輯“或”
10.with:和as一起用,使用的方法請看as,見with
11.assert:表示斷言(斷言一個條件就是真的,如果斷言出錯則抛出異常)用于聲明某個條件為真,如果該條件不是真的,則抛出異常:AssertionError

		v1 = 10
		v2 = 20
		assert(v1 > v2)

12.else:看下面if的解釋
13.if:if語句用于選擇分支,依據條件選擇執行那個語句塊。(if語句中最好不要嵌套if語句,建議把嵌套的if語句寫在另一個函數中)
14.pass:pass的意思就是什麼都不做
15.yield:用起來和return很像,但它傳回的是一個生成器
16.break:作用是終止循環,程式走到break的地方就是循環結束的時候。
17.except:和try一起使用,用來捕獲異常。
18.import:用來導入子產品,有時這樣用from....import
19.class:定義類
20.in:查找清單中是否包含某個元素,或者字元串a是否包含字元串b。
21.raise:raise可以顯示地引發異常。一旦執行raise語句,後面的代碼就不執行了
22.continue:跳過continue後面循環塊中的語句,繼續進行下一輪循環。
23.finally:看到finally語句,必然執行finally語句的代碼塊。
24.is:Python中的對象包含三要素:id、type、value,用來判斷對象是否相等
25.return:用于跳出函數,也可以在跳出的同時傳回一個值。
26.def:用于定義方法
27.for:for....in 一起使用:它在一序列的對象上遞歸,就是周遊隊列中的每個項目
28.lambda:即匿名函數
29.try:出現在異常進行中,使用格式為:try...except,try中放想要執行的語句,except捕獲異常
30.nonlocal:nonlocal關鍵字用來在函數或其他作用域中使用外層(非全局)變量
		例如:
		def make_counter(): 
	    	count = 0 
			def counter(): 
				nonlocal count 
				count += 1 
				return count 
	    	return counter 
	       
		def make_counter_test(): 
			mc = make_counter() 
			print(mc())
			print(mc())
			print(mc())
		make_counter_test()
           

1.6 行和縮進

學習 Python 與其他語言最大的差別就是,Python的代碼塊不使用大括号{}來控制類,函數以及其他邏輯判斷。python 最具特色的就是用縮進來寫子產品。

縮進的空白數量是可變的,但是所有代碼塊語句必須包含相同的縮進空白數量,這個必須嚴格執行。

if True:
	print "True"
else:
	print "False"
           

1.7 多行語句

Python語句中一般以新行作為語句的結束符。但是我們可以使用斜杠**( \)将一行的語句分為多行**顯示

total = item_one + \
		        item_two + \
		        item_three
		print('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
				aaaaaaaaaaaaaaaaaaaa')
           

語句中包含 [], {} 或 () 括号就不需要使用多行連接配接符

days = ['Monday', 'Tuesday', 'Wednesday',
				'Thursday', 'Friday']
           

1.8 引号

Python 可以使用引号( ’ )、雙引号( " )、三引号( ‘’’ 或 “”" )表示字元串,引号的開始與結束必須的相同類型的。

其中三引号可以由多行組成,編寫多行文本的快捷文法,常用于文檔字元串,在檔案的特定地點,被當做注釋。

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

1.9 Python空行

函數之間或類的方法之間用空行分隔,表示一段新的代碼的開始。類和函數入口之間也用一行空行分隔,以突出函數入口的開始。空行與代碼縮進不同,空行并不是Python文法的一部分。書寫時不插入空行,Python解釋器運作也不會出錯。但是空行的作用在于分隔兩段不同功能或含義的代碼,便于日後代碼的維護或重構。
		記住:空行也是程式代碼的一部分。
           

1.10 等待使用者輸入

執行下面的程式在按Enter鍵後就會等待使用者輸入:
input("\n\n按下 enter 鍵後退出。")
           

1.11 同一行顯示多條語句

Python可以在同一行中使用多條語句,語句之間使用分号(;)分割

x = 'runoob';print(x + '\n')
           

1.12 多個語句構成代碼組

縮進相同的一組語句構成一個代碼塊,我們稱之代碼組。像if、while、def和class這樣的複合語句,首行以關鍵字開始,以冒号( : )結束,該行之後的一行或多行代碼構成代碼組。

我們将首行及後面的代碼組稱為一個子句(clause)

if expression : 
	suite
elif expression : 
	suite 
else : 
	suite
           

1.13 Print 輸出

同類型才可以相加
		print 預設輸出是換行的,如果要實作不換行需要在變量末尾加上 end="":
 
		x="a"
		y="b"
		# 換行輸出
		print( x )
		print( y )
		 
		print('---------')
		# 不換行輸出
		print( x, end=" " )
		print( y, end=" " )
		print()
           

1.14 import 與 from…import

在 python 用 import 或者 from...import 來導入相應的子產品。
		a、将整個子產品(somemodule)導入,格式為: import somemodule
		b、從某個子產品中導入某個函數,格式為: from somemodule import somefunction
		c、從某個子產品中導入多個函數,格式為: from somemodule import firstfunc, secondfunc, thirdfunc
		d、将某個子產品中的全部函數導入,格式為: from somemodule import *
           

(1)導入 sys 子產品

import sys
print('================Python import mode==========================');
print ('指令行參數為:')
for i in sys.argv:
	 print (i)
print ('\n python 路徑為',sys.path)
           

(2)導入 sys 子產品的 argv,path 成員

from sys import argv,path  #  導入特定的成員 
print('================python from import===================================')
print('path:',path) # 因為已經導入path成員,是以此處引用時不需要加sys.path