字符編碼

 

切換到python 2,要加第一行纔不亂碼,這個是申明python

name = "li\tLIlililI"

print(name.capitalize()) # 首字母大寫,其餘小寫
print(name.casefold()) # 所有變小寫,這個程序不用判斷大小寫

print(name.center(50))
print(name.center(50,"-"))
print(name.count("i")) #統計

print(name.count("i",3,6)) #統計從第3個開始,第6個結束
print(name.endswith("I")) # 以I結尾
print(name.expandtabs(30)) # 設置\t的長度

print(name.find("i")) # 找第一個i的位置,若是找不到就是-1
print(name.find("i",3)) # 從第3個開始找,找第一個i的位置,若是找不到就是-1

name1 = "my name is {name},i am {age} years old"

print(name1.format(name="jensen",age=22)) #格式化輸出

print(name1.format_map({"name":"lili","age":23}))

name = "li\tLIlililI"

print(name.index("li")) #找出li的索引值

print(name.isalpha()) #判斷是否嬰兒

name='2nn'
print(name.isalnum()) # a-zA-Z0-9

print("10.1".isdecimal()) # 是否一個正整數
print("aa".isalpha()) # 是否是字母
print("a".isidentifier()) #是否是一個合法的變量名(或關鍵字),1a或-a都不是
print("a".islower()) # 小寫
print("a".isupper()) # 大寫
print("12.3".isnumeric()) #沒用,不能帶點
print("a".isprintable()) # 是否可打印,例如圖片就不能打印,音頻
print("a".isspace()) # 是否是空格
print("Ab".istitle()) # 是否是英文標題,首字母大寫叫英文單詞

print(   ";".join(["sjse","uei","ris"])) # 把列表拼接爲字符串
print(name.ljust(50,"-")) #左對齊,佔50個字符,不足的話用-補充
print(name.rjust(50,"-")) #左對齊,佔50個字符,不足的話用-補充
print(name.lower()) #大寫變小寫
print(name.rfind("n")) #用右邊開始找,從左邊數的位置


name1 = "my name is my {name},i am {age} years old"

print(name1.lstrip("my")) # 移除左邊第一個my
print(name1.swapcase()) # 大小寫互換

# 翻譯工具,容易破解,通常沒人用
IN="abcde"
OUT="12345"

aaa=str.maketrans(IN,OUT) # trans是translate是翻譯
print(name1.translate(aaa)) # a變爲了1

# 密碼不能被破解
# 我輸入密碼1234
# 支付寶會變爲密文adafwe
# 若是用密文輸入,登陸不了

print(name1.zfill(50)) #沒用
print(name1.replace("s","h")) # 替換
print(name1.replace("s","h",1))#替換

# 經常使用的
# strip
# center
# count
# find
# casefold或lower
# upper
# join
# split
# endwith
# startwith
# replace

name3="lwlewle"
print(name3.endswith("e"))api

 ------- 編碼1網絡

# _*_ coding:utf-8 _*_

name = "中國" #utf-8 格式的編碼

print name

print [name] # 存在列表裏是16進制的格式的

print [name.decode("utf-8")] #你如今是什麼編碼

# [u'\u4e2d\u56fd'] 前面有u就是unicode

print name.decode("utf-8") #你看到的不是unicode,而是終端屏幕的編碼格式

print name.decode("utf-8").encode("GBK") # 寫要轉化的目標編碼

gbk = name.decode("utf-8").encode("GBK")
print gbk.decode("GBK").encode("gb2312")
print gbk.decode("GBK").encode("utf-8")

ab=gbk.decode("GBK").encode("utf-8")
print(ab)
ab1=ab.decode("utf-8").encode("GBK")
print(ab1)

# 若是內存都是unicode的話,就不會亂碼

# 數據類型
# str 字符,只是一種人類可讀的抽象的表示形式
# int 整數
# float 浮點
# bool 邏輯符
# list 列表
# tuple 集合
# dict 字典
# set
# bytes 字節類型,二進制類型,但不是單純的0101,就是一個8bits的字節
# 在python 2裏,字符串都是bytes
# 在python 3裏,字符串都是unicode,解釋器讀取文件的默認編碼是utf-8,自動解碼爲unicode

a="jensen"
print type(bytes(a))ide

# python 2的str 在python 3的 python str
# str是沒法直接存到硬盤的,必定要轉二進制,因此轉bytes
# 數據存到硬盤中或網絡發送,必須是bytes形式

 

 

-- 編碼2工具

 

name = "中國"print(name)print(type(name))# 一些代碼在liunx寫的,如今要讀到python 3中# python 3 全部字符在內存裏都是unicode,# 解釋器讀取文件的默認編碼是utf-8,自動解碼爲unicode# 但有個文件的編碼是gbk,讀到內存裏須要解碼# 打開文件f = open ("test.txt",encoding='GBK') #默認以utf-8解釋print(f.read())name = "中國"print(name.encode("utf-8"))print(name.encode("gbk")) #python3會把unicode裝成相應編碼的同時,把字符變成bytes
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息