初識python #以下的代碼都是在PyCharm 4.5的編輯工具下執行的,並且python的版本是3.4 python的第一程式 print("Hello Word") #Hello Word 一、變數名 一)作用:一是用來存儲,二是用來調用 二)定義規則: 1)變數名只能是字母、數字、下劃線的 ...
初識python
#以下的代碼都是在PyCharm 4.5的編輯工具下執行的,並且python的版本是3.4
python的第一程式
print("Hello Word")
#Hello Word
一、變數名
一)作用:一是用來存儲,二是用來調用
二)定義規則:
1)變數名只能是字母、數字、下劃線的任意組合
2)變數名的第一字母不能是數字或下劃線
3)關鍵字不能聲明變數 比如:if、for、 class
三)變數的賦值:
name = "xiao ming"
上述代碼聲明瞭一個變數,變數名是 name, 變數 name 的值為:"xiao ming"
二、常用的數據類型
1、數字
int(整型):跟數學中數字的沒區別
long(長整型):int類型中表達不了的數字就用這個
float(浮點型):有小數點的數字
2、布爾值
True 真 或 1
False 假 或 0
3、字元串
1)字元串格式化輸出
name = "小明"
print ("I am %s" %name)
#輸出:I am 小明
2)字元串拼接
name = "小明"
print ("我是"+ name +"的同學")
#輸出:我是小明的同學
萬惡的字元串拼接:python中的字元串在C語言中體現為是一個字元數組,每次創建字元串是時候需要在記憶體中開闢一塊連續的空間,並且一旦需要修改字元串的話,就需要再次開闢空間,萬惡的+號每出現一次就會在記憶體中重新開闢一塊空間,所以為了減少記憶體空間的使用,一般情況下都不要用字元串拼接。
3)字元串常用功能
name = "xiao ming ,xiao gou,{hua}"
* 移除空白: name.strip() #把前後的空格或換行都去掉
* 分割: name.split(",") #按逗號把字元串里的字元分割開來變成列表
"|".join(name) #按|把分割開來的列表合在一起
* 長度: len(name) #
* 索引:name.find() #查找字元串中的某個元素,返回值就是該元素的索引
* 切片:跟列表切片是一樣的
*格式化:name.format(hua = "花")
*判斷: name.isdigit() #判斷字元串是不是數字
name.isalnum() #判斷字元串有沒有特殊字元
name.endswith() # 判斷字元串以什麼結尾
name.startswith() #判斷字元串以什麼開頭
name.upper() #把字元串都改成大寫
name.lower() #把字元串都改成小寫
"" in name #判斷裡面有沒有空格
4、列表
1)創建列表:
name = ["小明","xiaohua",36,"5",[3,4,9],"小狗",96,63,5,36,]
2)基本操作
索引:name[0]#取第一個值 name[:2]#取前面兩個值 name[-3:]#取最後三個值 name[4][1] #取第二層列表裡的值
#每個列表中的元素都對應一個索引,也稱下標,下標預設都是從0開始,例如下標0對應的就是第一個元素"小明"
切片:name[1:4]#取出第二個到第四個的值 xiaohua,36,5
追加:name.append("小花")#在列表中追加一個新的元素
刪除:name.remove("小狗")#刪除一個元素 ,但一次只能刪除一個
name.pop(7) #刪除第7個人 這個是刪除元素的下標,預設是刪除最後一個
# del name[4] del 刪除一個記憶體中的數據,不但可以刪列表,還可以刪很多 ,是python 的全局功能,
步長:name[::2] #隔一個人列印一個人,2就是步長,預設是1,但不能是0
長度:len(name) #查看列表裡有多少元素
插入:name.insert(2,"小紅")#在第三的位置上插入新的元素,但一次只能插入一個
清空:name.clear() #把這個列表清空
擴展:name.extend(name2) # 把name2列表的元素追加到了name列表,但name2列表的元素還存在,相當於拷貝了月份
排序:name.reverse() #把列表裡面的元素與之前的順序倒過來(從後面往前排)
拷貝:name4 = name.copy() #把一個列表的元素拷貝到另一個列表裡,預設只拷貝第一層,屬於淺拷貝
name5 = copy.deepcopy(name) #深層拷貝,首先要聲明一個標準庫:import copy
36 in name #判斷列表是否存在一個元素,如果有則返回True,沒有則返回False
name.count() #查找列表裡相同的元素有幾個
# geshu = name.count(36) 輸出結果是 2 說明列表裡有2個36
name.index() #查找某個元素的索引,如果有相同的元素,只能查找到排在最前面的一個
for i in range(name.count(36)): #查找列表裡有幾個36
suoyin = name.index(36) #查找元素36的索引
name[suoyin] = 666 #通過查到的索引來修改元素
print(name) #最後的結果把列表裡的所有36改成了666
5、元組(不可變列表)
1、創建元組:
ages = (11,22,33,44,55,66) 或 ages = tupe((11,22,33,44,55,66))
6、字典(無序)
id_xinxi = {
19891019:{
"name":"ypp",
"age" : 23,
"addr":"guangdong"
},
19900316:{
"name":"xiaoming",
"age" : 20,
"addr":"guangxi"
},
20160808:{
"name":"狗蛋",
"age" : 15,
"addr":"hunan"
}
}
print(id_xinxi[20160808]) #取值
id_xinxi[20160808]["addr"] = "湖南" # 改值
id_xinxi[20160808]["qq"] = 123654 #追加一個值
del id_xinxi[20160808]["age"] #刪除一個值
#id_xinxi[20160808].pop("age") 這也是刪除的方法
id_xinxi.get() #獲取字典里某個key的值
id_xinxi.items()#把一個字典變成一個元組,不要用!
id_xinxi.keys() #獲取一個字典里的所有key值
id_xinxi.values() #獲取一個字典里的所有value值
id_xinxi.update() #用新字典裡面的值覆蓋掉就字典里的值
20160808 in id_xinxi #判斷一個字典里有沒有某個key值
id_xinxi.setdefault() #獲取一個key,如果不存在,就會預設添加進去
1)字典的迴圈
for key in id_xinxi: #效率高
print(key,id_xinxi[key])
三、數據運算
一)算數運算
a = 10 b = 20
運算符 | 描述 | 實例 |
+ | 加—— 兩個對象相加 | a + b 輸出結果 30 |
- | 減—— 一個數減去另一個數 | a - b 輸出結果 -10 |
* | 乘—— 兩個數相乘或是返回一個被重覆若幹的字元串 | a * b 輸出結果 200 |
/ | 除—— b 除以 a | b / a 輸出結果 2 |
% | 取模—— 返回除法的餘數 | b / a 輸出結果 0 10 / 3 輸出結果 1 |
** | 冪 —— 返回 b 的 a 次冪 | b ** a 輸出結果 10240000000000 |
// | 取整除—— 返回商的整數部分 | 9 // 2 輸出結果 4 9.0 // 2.0 輸出結果是 4.0 |
二)比較運算:
運算符 | 描述 | 實例 |
== | 等於—— 比較對象是否相等 | (a == b) 返回 False |
!= | 不等於—— 比較兩個對象是否不相等 | (a != b) 返回 True |
<> | 不等於—— 比較兩個對象是否不相等 | (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 |
三)賦值運算
運算符 |
描述 |
示例 |
= |
賦值 - 將右邊的值賦值給左邊的變數名 |
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 |
四)邏輯運算符
運算符 | 描述 | 實例 |
and | 布爾 “與” ——如果X為False, X and Y 返回 False , 否則它返回 Y 的計算值 | (a and b) 返回 True |
or | 布爾 “或” ——如果X為True, X and Y 返回 True , 否則它返回 Y 的計算值 | (a or b) 返回 True |
not | 布爾 “非” ——如果X為True, X and Y 返回 False , 如果 X 為 False, 它返回 True | not(a and b) 返回 False |
五)身份運算
運算符 | 描述 | 實例 |
is | is是判斷兩個標識符是不是引用自一個對象 | X is Y ,如果id(X)等於id(Y),is 返回結果 1 |
print(type("333") is str) 返回True
print(type(333) is str) 返回False
六)位運算
電腦中能表示的最小單位,是一個二進位位
電腦中能存儲的最小單位,是一個二進位位(bit)
8bit = byte(1位元組)
1024byte = 1kbyte
1024kbyte = 1mbyte
1024mbyte = 1gb
1024gb = 1T
運算符 |
描述 a = 60 b = 13 |
示例 |
& |
與運算,這個二進位位必須在2組數中都為真,結果才返回真 |
(a & b)得12,二進位位: 0000 1100 |
| |
或運算,這個二進位位只需在其中一組數據中為真即返回真 |
(a | b)得 61,二進位位: 0011 1101 |
^ |
異或運算,只要這個二進位位在兩組數據中不相同就返回真 |
(a ^ b)得 49 ,二進位位: 0011 0001 |
<< |
左移運算,將a整體向左移2位 |
a << 2得240,二進位位: 1111 0000 |
>> |
右移運算,將a整體向右移3位 |
a >> 3得 7 ,二進位位: 0000 0111 |
四、表達式:
一)if...else語句
name = "小明"
passwd = 123654
username = input("請輸入用戶名:")
password = int(input("請輸入用戶名密碼:"))
if name == username and passwd == password:
print("恭喜你登入成功!")
else:
print("用戶名或密碼錯誤,請重新輸入!")
二)for迴圈
#計算1+2+...+10的和
sum = 0
for x in [1,2,3,4,5,6,7,8,9,10]:
sum = sum + x
print(sum)
<