【Python】Python基础
變量
一、 基礎運算
>>> 1+2 3二、 變量運算
>>> eat = 10+15+6 >>> cloth = 20+20 >>> total = eat+cloth >>> print('總消費',total) ('總消費', 71)當我們寫:a = 'ABC'時,Python解釋器干了兩件事情:
1)??????? 在內存中創建了一個'ABC'的字符串;
2)??????? 在內存中創建了一個名為a的變量,并把它指向'ABC'
三、 變量定義規則
1)??????? 變量名只能是 字母、數字或下劃線的任意組合
2)??????? 變量名的第一個字符不能是數字
3)??????? 以下關鍵字不能聲明為變量名['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
四、變量 定義方式
1)??????? 駝峰體
>>> AgeOfYim = 252)??????? 下劃線
>>> age_of_yim = 25五、 刪除變量
>>> del AgeOfYim六、 輸出變量信息
>>> id(age_of_yim) #變量在內存中的地址 497792832 >>> type(age_of_yim) #變量數據類型 <class 'int'> >>> age_of_yim #變量的值 25常量
一、常量的定義
常量即指不變的量
二、 常量的寫法
變量名全部大寫代表常量
>>> AGE_OF_YIM = 25程序交互
讀取用戶輸入
name = input('Please input your name:') print('Hello',name)注釋
一、單行注釋
單行注釋以 # 開頭,例如:
# 這是一個注釋 print("Hello, World!")二、 多行注釋
多行注釋用三個單引號 ''' 或者三個雙引號 """ 將注釋括起來,例如:
''' Author yim 2017-07-03 '''三、 pycharm快速注釋多行
快捷鍵:Ctrl+/
數據類型
一、Number(數字)
整型int
在32位機器上,整數的位數為32位,取值范圍為-2**31~2**31-1,即-2147483648~2147483647
在64位系統上,整數的位數為64位,取值范圍為-2**63~2**63-1,即-9223372036854775808~9223372036854775807
counter = 100 # 整型變量長整型long
自從Python2.2起,如果整數發生溢出,Python會自動將整數數據轉換為長整數
在Python 3里,只有一種整數類型 int
浮點型float
浮點數也就是小數
miles = 1000.0 # 浮點型變量布爾型bool
布爾型有兩個值 ,一個True(真)一個False(假), 主要用記邏輯判斷
>>> True and False False >>> True and True True >>> False and False False復數complex
復數由實數部分和虛數部分組成,一般形式為x+yj,其中的x是復數的實數部分,y是復數的虛數部分,這里的x和y都是實數。
注:Python中存在小數字池:-5 ~ 257
二、String(字符串)
Python中的字符串用單引號(')或雙引號(")括起來
1)??????? 反斜杠可以用來轉義,使用r可以讓反斜杠不發生轉義。
2)??????? 字符串可以用+運算符連接在一起,用*運算符重復。
3)??????? Python中的字符串有兩種索引方式,從左往右以0開始,從右往左以-1開始。
4)??????? Python中的字符串不能改變。
name = 'Runoob'print(name) #輸出字符串 print(name[0]) #輸出第一個字符 print(name[0:2]) #輸出第一個到第二個字符 print(name[1:]) #輸出第二個字符后面的所有字符 print(name[0:-1]) #輸出第一個到倒數第二個的所有字符 print(name + 'TEST') #拼接字符串 print(name * 2) #輸出字符串兩次
msg = ''' #多行字符串用多引號 我有一頭小毛驢 從來都不騎 '''>>> print('Ru\noob') #反斜杠可以用來轉義,使用r可以讓反斜杠不發生轉義 Ru oob>>> print(r'Ru\noob')Ru\noob
三、List(列表)
1)??????? List寫在方括號之間,元素用逗號隔開。
2)??????? 和字符串一樣,list可以被索引和切片。
3)??????? List可以使用+操作符進行拼接。
4)??????? List中的元素是可以改變的
list = [ 'abcd', 786 , 2.23, 'runoob', 70.2 ] tinylist = [123, 'runoob']print(list) #輸出完整列表 print(list[0]) #輸出第一個元素 print(list[0:2]) #輸出第一個到第二個元素 print(list[1:]) #輸出第二個元素后面的所有元素 print(list[0:-1]) #輸出第一個到倒數第二個的所有元素 print(list + tinylist) #拼接列表 print(list * 2) #輸出列表兩次 list.append('yim') #追加 list.insert(1,789) #插入 list[0] = 'yim ' #修改 del list[1] #刪除 list.remove('yim') #也是刪除四、Tuple元組
1)??????? 與字符串一樣,元組的元素不能修改。
2)??????? 元組也可以被索引和切片,方法一樣。
3)??????? 注意構造包含0或1個元素的元組的特殊語法規則。
4)??????? 元組也可以使用+操作符進行拼接。
tuple = ( 'abcd', 786 , 2.23, 'runoob', 70.2 ) tinytuple = (123, 'runoob')print (tuple) # 輸出完整元組 print (tuple[0]) # 輸出元組的第一個元素 print (tuple[1:3]) # 輸出從第二個元素開始到第三個元素 print (tuple[2:]) # 輸出從第三個元素開始的所有元素 print (tinytuple * 2) # 輸出兩次元組 print (tuple + tinytuple) # 連接元組>>> tuple[0] = 789 # 修改元組元素的操作是非法的 Traceback (most recent call last):File "<stdin>", line 1, in <module> TypeError: 'tuple' object does not support item assignment五、Set集合
集合是一個無序的,不重復的數據組合,它的主要作用如下:
1)??????? 去重,把一個列表變成集合,就自動去重了
2)??????? 關系測試,測試兩組數據之前的交集、差集、并集等關系
student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'} print(student) # 輸出集合,重復的元素被自動去掉# 成員測試 if('Rose' in student) :print('Rose 在集合中') else :print('Rose 不在集合中')# set可以進行集合運算 a = set('abracadabra') b = set('alacazam')print(a) print(a - b) # a和b的差集 print(a | b) # a和b的并集 print(a & b) # a和b的交集 print(a ^ b) # a和b中不同時存在的元素六、Dictionary字典
1)??????? 字典,無序的對象集合,通過鍵來存取的
2)??????? 字典用"{ }"標識,它是一個無序的鍵(key):值(value)對集合
3)??????? 鍵(key)必須使用不可變類型
4)??????? 在同一個字典中,鍵(key)必須是唯一的
5)??????? 創建空字典使用 { }
dict = {'name':'yim','age':'25'}print(dict) #輸出完整字典 print(dict['name']) #輸出鍵為 'name' 的值 print(dict.keys()) #輸出所有鍵 print(dict.values()) #輸出所有值 dict['addr'] = 'beijing' #增加 dict.pop('addr') #刪除 del dict['addr'] #也是刪除 dict['name'] = 'xiaoming' #修改格式化輸出
字符串是 %s;整數 %d;浮點數%f
name = input('Name:') age = input('Age:') job = input('Job:') hobbie = input('Hobbie:')info = ''' ------------ info of %s ----------- #這里的每個%s就是一個占位符,本行的代表后面拓號里的 name Name : %s #代表 name Age : %s #代表 age job : %s #代表 job Hobbie: %s #代表 hobbie ------------- end ----------------- ''' %(name,name,age,job,hobbie) #這行的 % 號就是把前面的字符串與括號后面的變量關聯起來print(info)數據類型轉換
| 函數 | 描述 |
| int(x [,base]) | 將x轉換為一個整數 |
| float(x) | 將x轉換到一個浮點數 |
| complex(real [,imag]) | 創建一個復數 |
| str(x) | 將對象 x 轉換為字符串 |
| repr(x) | 將對象 x 轉換為表達式字符串 |
| eval(str) | 用來計算在字符串中的有效Python表達式,并返回一個對象 |
| tuple(s) | 將序列 s 轉換為一個元組 |
| list(s) | 將序列 s 轉換為一個列表 |
| set(s) | 轉換為可變集合 |
| dict(d) | 創建一個字典。d 必須是一個序列 (key,value)元組。 |
| frozenset(s) | 轉換為不可變集合 |
| chr(x) | 將一個整數轉換為一個字符 |
| unichr(x) | 將一個整數轉換為Unicode字符 |
| ord(x) | 將一個字符轉換為它的整數值 |
| hex(x) | 將一個整數轉換為一個十六進制字符串 |
| oct(x) | 將一個整數轉換為一個八進制字符串 |
運算符
一、算術運算符
加減乘除、取模、冪、取整除(商)
以下假設變量a為10,變量b為21:
| 運算符 | 描述 | 實例 |
| + | 加 - 兩個對象相加 | a + b 輸出結果 31 |
| - | 減 - 得到負數或是一個數減去另一個數 | a - b 輸出結果 -11 |
| * | 乘 - 兩個數相乘或是返回一個被重復若干次的字符串 | a * b 輸出結果 210 |
| / | 除 - x 除以 y | b / a 輸出結果 2.1 |
| % | 取模 - 返回除法的余數 | b % a 輸出結果 1 |
| ** | 冪 - 返回x的y次冪 | a**b 為10的21次方 |
| // | 取整除 - 返回商的整數部分 | 9//2 輸出結果 4 , 9.0//2.0 輸出結果 4.0 |
二、比較運算符
等于、不等于、大于、小于、大于等于、小于等于
以下假設變量a為10,變量b為21:
| 運算符 | 描述 | 實例 |
| == | 等于 - 比較對象是否相等 | (a == b) 返回 False。 |
| != | 不等于 - 比較兩個對象是否不相等 | (a != b) 返回 True。 |
| >? | 大于 - 返回x是否大于y | (a > b) 返回 False。 |
| <? | 小于 - 返回x是否小于y。所有比較運算符返回1表示真,返回0表示假。這分別與特殊的變量True和False等價。注意,這些變量名的大寫。 | (a < b) 返回 True。 |
| >= | 大于等于 - 返回x是否大于等于y。 | (a >= b) 返回 False。 |
| <= | 小于等于 - 返回x是否小于等于y。 | (a <= b) 返回 True。 |
三、賦值運算符
簡單、加法、減法、乘法、除法、取模、冪、取整除
以下假設變量a為10,變量b為20:
| 運算符 | 描述 | 實例 |
| = | 簡單的賦值運算符 | c = a + b 將 a + b 的運算結果賦值為 c |
| += | 加法賦值運算符 | c += a 等效于 c = c + a |
| -= | 減法賦值運算符 | c -= a 等效于 c = c - a |
| *= | 乘法賦值運算符 | c *= a 等效于 c = c * a |
| /= | 除法賦值運算符 | c /= a 等效于 c = c / a |
| %= | 取模賦值運算符 | c %= a 等效于 c = c % a |
| **= | 冪賦值運算符 | c **= a 等效于 c = c ** a |
| //= | 取整除賦值運算符 | c //= a 等效于 c = c // a |
四、邏輯運算符
Python語言支持邏輯運算符,以下假設變量 a 為 10, b為 20:
| 運算符 | 邏輯表達式 | 描述 | 實例 |
| and | x and y | 布爾"與" - 如果 x 為 False,x and y 返回 False,否則它返回 y 的計算值。 | (a and b) 返回 20。 |
| or | x or y | 布爾"或" - 如果 x 是 True,它返回 x 的值,否則它返回 y 的計算值。 | (a or b) 返回 10。 |
| not | not x | 布爾"非" - 如果 x 為 True,返回 False 。如果 x 為 False,它返回 True。 | not(a and b) 返回 False |
五、位運算符
按位運算符是把數字看作二進制來進行計算的。Python中的按位運算法則如下:
下表中變量 a 為 60,b 為 13二進制格式如下:
a = 0011 1100 b = 0000 1101 -----------------a&b = 0000 1100 a|b = 0011 1101 a^b = 0011 0001 ~a = 1100 0011
?
| 運算符 | 描述 | 實例 |
| & | 按位與運算符:參與運算的兩個值,如果兩個相應位都為1,則該位的結果為1,否則為0 | (a & b) 輸出結果 12 ,二進制解釋: 0000 1100 |
| | | 按位或運算符:只要對應的二個二進位有一個為1時,結果位就為1。 | (a | b) 輸出結果 61 ,二進制解釋: 0011 1101 |
| ^ | 按位異或運算符:當兩對應的二進位相異時,結果為1 | (a ^ b) 輸出結果 49 ,二進制解釋: 0011 0001 |
| ~ | 按位取反運算符:對數據的每個二進制位取反,即把1變為0,把0變為1 | (~a ) 輸出結果 -61 ,二進制解釋: 1100 0011, 在一個有符號二進制數的補碼形式。 |
| <<? | 左移動運算符:運算數的各二進位全部左移若干位,由"<<"右邊的數指定移動的位數,高位丟棄,低位補0。 | a << 2 輸出結果 240 ,二進制解釋: 1111 0000 |
| >>? | 右移動運算符:把">>"左邊的運算數的各二進位全部右移若干位,">>"右邊的數指定移動的位數 | a >> 2 輸出結果 15 ,二進制解釋: 0000 1111 |
六、 成員運算符
| 運算符 | 描述 | 實例 |
| in | 如果在指定的序列中找到值返回 True,否則返回 False。 | x 在 y 序列中 , 如果 x 在 y 序列中返回 True。 |
| not in | 如果在指定的序列中沒有找到值返回 True,否則返回 False。 | x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 |
>>> list = [1,2,3,4,5] >>> 1 in list True >>> a in list False >>> 1 not in list False >>> a not in list True
七、身份運算符
身份運算符用于比較兩個對象的存儲單元
| 運算符 | 描述 | 實例 |
| is | is 是判斷兩個標識符是不是引用自一個對象 | x is y, 類似?id(x) == id(y)?, 如果引用的是同一個對象則返回 True,否則返回 False |
| is not | is not 是判斷兩個標識符是不是引用自不同對象 | x is not y?, 類似?id(a) != id(b)。如果引用的不是同一個對象則返回結果 True,否則返回 False。 |
八、運算符優先級
以下表格列出了從最高到最低優先級的所有運算符:
| 運算符 | 描述 |
| ** | 指數 (最高優先級) |
| ~ + - | 按位翻轉, 一元加號和減號 (最后兩個的方法名為 +@ 和 -@) |
| * / % // | 乘,除,取模和取整除 |
| + - | 加法減法 |
| >> << | 右移,左移運算符 |
| & | 位 'AND' |
| ^ | | 位運算符 |
| <= < > >= | 比較運算符 |
| <> == != | 等于運算符 |
| = %= /= //= -= += *= **= | 賦值運算符 |
| is is not | 身份運算符 |
| in not in | 成員運算符 |
| not or and | 邏輯運算符 |
條件控制
Python條件語句是通過一條或多條語句的執行結果(True或者False)來決定執行的代碼塊。
可以通過下圖來簡單了解條件語句的執行過程:
一、if語句
1)??????? 每個條件后面要使用冒號(:),表示接下來是滿足條件后要執行的語句塊。
2)??????? 使用縮進來劃分語句塊,相同縮進數的語句在一起組成一個語句塊。
3)??????? 在Python中沒有switch – case語句。
1、單分支
if 條件:
滿足條件后要執行的代碼
var = 1 if var > 0:print('True')2、雙分支
if 條件:
??? 滿足條件執行代碼
else:
if條件不滿足就走這段
var = 1if var > 1:print('True') else:print('False')3、多分支
if 條件:
??? 滿足條件執行代碼
elif 條件:
??? 上面的條件不滿足就走這個
elif 條件:
??? 上面的條件不滿足就走這個
elif 條件:
??? 上面的條件不滿足就走這個???
else:
上面所有的條件不滿足就走這段
age_of_yim = 25 guess = int(input('>>>:'))if guess > age_of_yim:print('猜的太大了') elif guess < age_of_yim:print('猜的太小了') else:print('猜對了')二、 if嵌套
在嵌套 if 語句中,可以把 if...elif...else 結構放在另外一個 if...elif...else 結構中。
if 表達式1: ??? 語句 ??? if 表達式2: ??????? 語句 ??? elif 表達式3: ??????? 語句 ??? else: ??????? 語句 elif 表達式4: ??? 語句 else: ??? 語句 num=int(input("輸入一個數字:"))if num%2==0:if num%3==0:print ("你輸入的數字可以整除 2 和 3")else:print ("你輸入的數字可以整除 2,但不能整除 3") else:if num%3==0:print ("你輸入的數字可以整除 3,但不能整除 2")else:print ("你輸入的數字不能整除 2 和 3")三、if中常用的操作運算符
| 操作符 | 描述 |
| <? | 小于 |
| <= | 小于或等于 |
| >? | 大于 |
| >= | 大于或等于 |
| == | 等于,比較對象是否相等 |
| != | 不等于 |
循環語句
Python中的循環語句有 for 和 while。
Python循環語句的控制結構圖如下所示:
?
一、 while 循環
Python中while語句的一般形式:
while 判斷條件: 語句 #計算 1 到 100 的總和: count = 1 sum = 0while count <= 100:sum += countcount += 1 print(sum)二、無限循環
while 是只要后邊條件成立(也就是條件結果為真)就一直執行,怎么讓條件一直成立呢?
var = 1while var == 1 : # 表達式永遠為 truenum = int(input("輸入一個數字 :"))print ("你輸入的數字是: ", num) print ("Good bye!")三、 while 循環使用 else 語句
在 while … else 在條件語句為 false 時執行 else 的語句塊:
count = 0while count < 5:print (count, " 小于 5")count = count + 1 else:print (count, " 大于或等于 5")四、 循環中止語句
1)??????? break用于完全結束一個循環,跳出循環體執行循環后面的語句
2)??????? continue和break有點類似,區別在于continue只是終止本次循環,接著還執行后面的循環,break則完全終止循環
for 語句(待補充)
轉載于:https://www.cnblogs.com/yanglang/p/7126255.html
總結
以上是生活随笔為你收集整理的【Python】Python基础的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 51nod1307(暴力树剖/二分dfs
- 下一篇: Shiro学习(15)单点登录