Python程序基本組成
1.Python中的註釋
單行註釋 使用#
多行註釋使用三個單引號或者三個雙引號
''' 註釋內容 ''' 或 """ 註釋內容 """
2.Python中的輸出
print輸出:
print語法形式 :print 表達式1,表達式2,表達式3,……,表達式n;使用“+”連接;可以使用反引號轉譯`
(注意:print 在對字符串使用 +號時是連接,在對數值使用+號時是加號執行的是加法運算)
輸入: num1 = raw_input("請輸入數字1:") num2 = raw_input("請輸入數字2:") result = int(num1)+int(num2) intNum1 = int(num1) intNum2 = int(num2) print "字符串連接是:",num1+num2 print "數值連接是:",intNum1+intNum2 輸出: 請輸入數字1:3 請輸入數字2:4 字符串連接是: 34 數值連接是: 7
## 直接都是字符串 str1 = '罰抄' str2 = '3' str3 = '遍' print str1+str2+str3 str1 = '罰抄' str2 = 3 str3 = '遍' ##使用反引號轉義 print str1+`str2`+str3 ##使用string方法進行數據類型轉換 print str1+str(str2)+str3
格式化輸出:print “提示字符 格式化 提示話” 常用的 %s %d %f ;佔位符寬度可以指定;
print "%[-][number][.number][s,d,f]"%("variable")
示例如下:
#1.字符串佔位符 %s print "His name is %s"%"jack" #2.整數佔位符 %d print "He is %d years old"%20 #3.浮點佔位符 %f print "His weight is %f kg"%180.2 print "His weight is %.3f kg"%180.2 #4.指定佔位符寬度 通過%[-左對齊][數值指定寬度]s print "Name:%10s Age:%8d Height:%8.2f"%("jack",25,183) #使用左對齊 “-”打印格式統一好看 # print "%[-][number][.number][s,d,f]"%("variable") print "Name:%-10s Age:%-8d Height:%-8.2f"%("jackoqdfa",25,183) print "Name:%-10s Age:%-8d Height:%-8.2f"%("jacsafk",25,183) print "Name:%-10s Age:%-8d Height:%-8.2f"%("jasdddsack",25,183) print "Name:%-10s Age:%-8d Height:%-8.2f"%("zxck",25,183)
輸出內容:
His name is jack He is 20 years old His weight is 180.200000 kg His weight is 180.200 kg Name: jack Age: 25 Height: 183.00 Name:jackoqdfa Age:25 Height:183.00 Name:jacsafk Age:25 Height:183.00 Name:jasdddsack Age:25 Height:183.00 Name:zxck Age:25 Height:183.00
print3打印必須是帶括號print()
format():讓格式輸出更清晰
print "{0} is {1} years old".format("jack",20)
print "{1} is {0} years old".format(20,"jack")
輸出:
jack is 20 years old
jack is 20 years old
輸入:
boy = ["jack",20]
girl = ["Miki",18]
print "{0[0]} is {0[1]} years old,{1[0]} is {1[1]} years old ".format(boy,girl)
輸出:
jack is 20 years old,Miki is 18 years old
進階設置佔位符大小和居中:
#設置格式化,把三個變量指定寬度
"{:20}\t{:28}\t{:32}".format("asdfa","asdf","sds")
#設置格式化,把三個變量指定寬度,並設置爲居中
"{:^20}\t{:^28}\t{:^32}".format("asdfa","asdf","sds")
3.Python中的輸入
raw_input()輸入使用:
*得到的是字符串
input():讀取一個合法的python表達式:只進行數學計算時可以使用。否者用raw_input();
num3 = input("10+5:")
print(type(num3))
print(num3)
輸出:
10+5:10+5
<type 'int'>
15
在Python3中input()接收字符串類型了;所以一般用raw_input();
4.Python容器數據類型
List,Tuple,Dictionary,Set
四個;
1.列表–List []
列表可以存儲多個不同類型的數據
列表創建:一個簡單創建,一個通過list(xxx)來進行創建,對字符串創建非常有效;
list1 = ['h','e','l','l','o'] print list1 list2 = list('hello') print list2
列表訪問:1.使用index訪問:
list[index]
list[0]
更新列表:
list.append(xxx)
只能追加一個對象list1.append(5)
刪除列表:
del list[index]
刪除某一個;del list[index1:index2]
刪除一個區間【index1~index2】的數據;del list
刪除整個list列表,在內存中釋放;del list[:]
清空整個list數據
del list4[:] #清空列表內容 或者 del list4[0:len(list4)] print list4 輸出:[]
列表腳本操作符
len([1,2,3])
[1,2,3]+[4,5,6]
輸出:[1,2,3,4,5,6]
['Hi!']*4
對string類型也可以 :'hello'*4
;'2'*4
分別輸出: ['Hi!', 'Hi!', 'Hi!', 'Hi!'] hellohellohellohello 2222
3 in [1,2,3]
輸出bool:True
多維數據讀取:
list[0][0]
list[[1,2,3],[4,5],[6,[7,8]],[9]] print list[2][1][1]
列表索引,切片
list[-2:]
2.元組–Tuple ()
與列表類似,元組的元素不能修改; 變量名 = ();只有一個值的元組要有一個逗號
創建元組:
tup1 = (1,2,'abc') #直接括起來 tup2 = 'a','b','c',1 #不用括號直接創建元組 極端時可以是 a = "a", 這個後面有個逗號也是元組 #通過tuple() 函數把某種數據轉換爲元組 tup3 = tuple('hello') tup4 = tuple([1,2,3]) tup5 = tuple((4,5,6))
訪問元組:
- 使用下表訪問某一個元素
tup1[index]
;使用切片方式訪問一個區間元素tup1[index1:index2]
- 格式化輸出用到的也是元組:
print "小張今年%d歲,是個耿直%s"%(20,'boy')
- 使用下表訪問某一個元素
修改元組:元組內容不可以修改,但是可以元組組合
tup1+tup2
;連接操作;刪除元組:元組中的元素不允許刪除,但可以用del語句刪除整個元組;
del tup1 print tup1 輸出:NameError: name 'tup1' is not defined
元組運算符:
迭代:
存在中文亂碼問題及其解決python2:
tup1 = ('duan','jin','張三','李四',1,2) print tup1 #輸出會出現轉碼問題 輸出: ('duan', 'jin', '\xe5\xbc\xa0\xe4\xb8\x89', '\xe6\x9d\x8e\xe5\x9b\x9b', 1, 2) #解決辦法 #1.通過json自帶方法 import json print json.dumps(tup1).decode("unicode-escape") 輸出: ["duan", "jin", "張三", "李四", 1, 2]
連接:+
(1, 2, 3) + (4, 5, 6) ---> (1, 2, 3, 4, 5, 6)
len()
3 in (1, 2, 3)
判斷是否存在一個元素
元組的索引,截取
tuple[:2],tuple[-3:],tuple[:-1]
3.字典–Dictionary {}
字典形式:{key:value,key1:value1}
鍵是唯一必須的,值則不必;鍵可以值字符串,數值,元組;值是任意類型
創建字典
字典無序讀取效率高。list是順序讀取,數據量多的時候讀取效率低
# 1.建立一個空字典,再賦值 dict1 = {} dict1['age'] = 20 #和列表賦值寫法一樣 都是方括號寫;不可以通過dict1{'age'} 這個是不合法的 print dict1 # 2.鍵值對直接創建 person = {'name':'qiwsir','language':'python','name':'yuwen'} person['name2'] = 'qiwsir2' print person #順序發現隨機 # 3.通過dict()把元組變爲字典 tup1 = (['name1','baidu'],['name2','google']) # 元組必須是鍵值對形式 website = dict(tup1) print website # 4. dict4 = ('name'='value',''='') # 5. fromkeys() 方式 dict5 = {}.fromkeys(('first','seconde'),'facebook')
讀取操作:
dict1['name']
更改操作:
dict1['name'] = 'new_value'
刪除操作:del 注意:訪問清空過得,不存在的元素會報錯
del dict1['name'] # 刪除一個元素 dict1.clear() # 清空操作 del dict1 # 刪除字典本身
4.集合–Set
一個無序且不重複的元素集合。
1.創建集合
# 1.字符串變爲集合
set1 = set('hello')
# 2.列表變爲集合
list1 = [1, 2, 3, 4]
set2 = set(list1)
# 3.字典變爲集合 ;set3裏面變成了他的key值
dict1 = {'n1': 1, 'n2': '2', 'n3': [3, 4]}
set3 = set(dict1)
# 4.直接寫
set4 = {'k1', 'k2', 'k3'}
2.集合操作:主要是集合的交併補集等
# 比較:
se = {11, 22, 33}
be = {22, 55}
temp1 = se.difference(be) # 找出se中存在,be中不存在的數據
temp2 = se.difference_update(be) #找到se中存在,be中不存在的集合,覆蓋掉se
tem1 = se.intersection(be) # 取交集
se.intersection_update(be) # 取交集並更新自己
# t
se.isdisjoint(be) # 是否存在交集
se.issubset(be) # 是不是子集
se.issuperset(be) # 是不是父集
se.symmetric_difference_update(be) # 合併不同項
se.update(be) # 合併原值,覆蓋
3.集合刪除:discard() ,remove(),pop()
discard() 移除不存在元素不會報錯; remove() 移除不存在元素會報錯;pop()移除末尾元素並返回
set3 = set({31, 32, 33})
set3.discard(11)
set3.discard(44)
set4 = set({41, 42, 43})
set4.remove(41)
set4.remove(44) # 移除不存在會報錯
set5 = set({51, 52, 53})
temp3 = set5.pop()
5.Python中的運算符
1.算術運算符:
+ - * / % ** //
2.比較運算符:
==
!=
>
<
>=
<=
3.賦值運算符
=
+=
-=
*=
/=
4.邏輯運算符
and x and y # 數字不爲零就是true
or x or y
not not x
5.位運算符
按位運算符是把數字看作二進制來進行計算的。
運算符 | 描述 | 實例 |
---|---|---|
& | 按位與 | |
| | 按位或 | |
^ | 按位異或 | |
~ | 按位取反 | |
<< | 左移動 | |
>> | 右移動 |
實例:
a = 60 #60 = 0011 1100
b = 13 #13 = 0000 1101
c = a & b#12 = 0000 1100
進制轉換:
bin() # 十進制轉二進制
oct() # 十進制轉八進制
hex() # 十進制轉十六進制
6.成員運算符: in,not in
爲了獲取bool
值運行
7.身份運算符: is, is not
身份運算符用於比較兩個對象的存儲單元,id()
函數用於獲取對象內存地址。
a is b
判斷相當於 id(a) == id(b)
總結:運算符優先級
指數>按位運算>算術>邏輯>and 等等
8.時間和日期
time 和datetime