字符编码
# 需知:
#
# 1.在python2默认编码是ASCII, python3里默认是unicode
#
# 2.unicode 分为 utf-32(占4个字节),utf-16(占两个字节),utf-8(占1-4个字节), so utf-16就是现在最常用的unicode版本, 不过在文件里存的还是utf-8,因为utf8省空间
#
# 3.在py3中encode,在转码的同时还会把string 变成bytes类型,decode在解码的同时还会把bytes变回string
#-*-coding:gb2312 -*- #这个也可以去掉
__author__ = 'Alex Li'
import sys
print(sys.getdefaultencoding())
msg = "i am 我爱北京天安门"
#msg_gb2312 = msg.decode("utf-8").encode("gb2312")
msg_gb2312 = msg.encode("gb2312") #默认就是unicode,不用再decode,喜大普奔
gb2312_to_unicode = msg_gb2312.decode("gb2312")
gb2312_to_utf8 = msg_gb2312.decode("gb2312").encode("utf-8")
print(msg)
print(msg_gb2312)
print(gb2312_to_unicode)
print(gb2312_to_utf8)
字符格式化
ctrl+D複製一行、
ctrl+?注釋
佔位符
%d:d==digital數字
%s:s==string字符
%f:f==float小數
exit():退出程序,也可以如exit("you are wrong")
數據運算
整型integrate
長整型long
python3不區分整型和長整型了,統稱整型
浮點型float
布爾值:真或假,True False
字符串:"hello world!",'222'
字符串拼接不建議使用“,+”符號,慢而且,佔用內存使用%s來拼接
如下:
name="hua"
print("姓名是:%s" %name)
*******************************************
range(3):代表3次【0,1,2】,以此類推range(4)4次【0,1,2,3】
range(1,101):1代表從1開始,101代表到100
例:for i in range(1,101,2):
if i %2==1:
print(i)
輸出結果是1~101之間的奇數
range(1,101,2):2代表步長
例:for i in range(1,101,2):
print(i)
輸出結果是1~101之間的奇數
不輸出結果是50~70之間數
例:for i in range(1,101):
if i<50 or i>70
print(i)
#輸入用戶名和密碼判斷是否正確,錯誤可以輸入3次
_user = "hua"
_password = "123"
for i in range(3):
userName = input("Name:")
passWord = input("password:")
if userName == _user and passWord == _password:
print(" welcome %s login....." % userName)
break #跳出中斷,break for之後就不會執行後面的else語句
else:
print("password and userName is invalid...")
else: #只要上面的for語句正常執行完畢,中間沒有被打斷就會執行else語句
print("you login 3 ,please don't login...")
_user = "hua"
_password = "123"
counter = 0
while counter < 3:
userName = input("Name:")
passWord = input("password:")
if userName == _user and passWord == _password:
print(" welcome %s login....." % userName)
break #跳出中斷,break for之後就不會執行後面的else語句
else:
print("password and userName is invalid...")
counter += 1
else: #只要上面的for語句正常執行完畢,中間沒有被打斷就會執行else語句
print("you login 3 ,please don't login...")
***********************************************************
break:跳出當前循環
continue:跳出本次循環,繼續執行下一次循環,
keep_going = False
for i in range(10):
if i < 5:
continue
print(i)
for j in range(10):
print(j)
if j == 6:
keep_going = True
break #因為內循環退出了
if keep_going:
break #所以我也退出了
*************************************************
列表 元組
#增刪改查
#查 切片
a=[]代表列表格式:a=['xiaohu','jinxing','ligang','sanpang','wuchao']
a[1:3]:代表從索引1開始到索引3前面的一個值,如結果是jinxing ligang
print(a[1:]):代表打印從索引1到最後的所有的值
print(a[1:-1]):代表从索引1到倒數第2個值全部取出來
print(a[1:-1:1]):從索引1開始到倒數第2個左到右一個一個去取
print(a[1::2]):從索引1開始左到右隔一個去取
print(a[1:-1:1]):從索引1開始左到右隔一個去取
print(a[3::-2]):從索引3開始右到左隔一個去取
#增加
#append:在最後增加 a.append('內容')
#insert:插入到某一個位置 a.insert(索引位置,'插入的內容'):a.insert(2,'你好')
#修改:直接把位置的內容替換掉
a[1]='hai':把索引位置1的內容修改為hai
a[1:3]=['hai','hhh']:把索引1和2的內容替換掉
#刪除 remove pop del
a.remove('刪除的內容')或者a.remove(a[0])
a.pop(1):1代表索引位置 ,
b=a.pop(1):把1代表索引位置的內容刪除賦給b
a.pop()默認刪除最後一個字符串
del a[0] :刪除a列索引0的內容
del a:刪除整個a的列表,從內存中刪掉
a.clear()清空全部內容
#列表中字符串出現的次數 :count
方法:a=['to','be','or','not','to','be'].count('to')
print(t)
#extend 方法添加整體添加到後面
a=[1,2,3]
b=[4,5,6]
a.extend(b) 執行之後a是有變化的
print(a):---[1,2,3,4,5,6]
print(b)---[4,5,6]
a+b:[1,2,3,4,5,6] 執行之後a和b的內容都沒有變化
#index:當不知道索引值的時候使用根據內容找位置
a=['xiaohu','jinxing','ligang','sanpang','wuchao']
print(a.index('jinxing'))
#reverse把列表字符串倒敘排列
a.reverse()
#sort,無序列表按照順序排列
x=[4,6,2,1,7,9]
x.sort() / x.sort(reverse=True)
print(x)----x=[1,2,4,6,7,9]
b=sorted(x)
print(x)
身份判斷
type(a) is list
元組:tuple不可以修改只能讀
tup1()空元組
tup2(12,)記得只有一個元素的時候要加逗號
列表嵌套
a=[[1,2,3],4,'alex',(2,3,4)]
a[0] =[1,2,3]
b[1]
相當於:print(a[0][1])
for i in enumerate(product_list):默認從0開始
(0, ['Mac', 9000])
(1, ['kindle', 800])
(2, ['tesla', 900000])
(3, ['book', 105])
(4, ['bike', 2000])
for i in enumerate(product_list,1):默認從1開始
(1, ['kindle', 800])
(2, ['tesla', 900000])
(3, ['book', 105])
(4, ['bike', 2000])
a,b=[2,3]相當於a=2,b=3