格式化输出,运算符,编码,字符串(索引,切片,大小写转换等等)
格式化輸出%s和format{} , 運算符 , 編碼 , 字符串(索引,切片,大小寫轉換,拉長字符,去空格,替換,切割,格式化輸出format , count數數 , find查找 , index求索引 , startswith判斷字符串是否以xxx開頭 ???, ? ?endswith?判斷字符串是否以xxx結尾 , ? ? ? ? 是否是字母和數字組成isalnum數字和字母 , isdigit數字 , isalpha字母)
格式化輸出:
例題:(1)
name = input("輸入你的名字:")age = input("輸入你的年齡:")
job = input("輸入你的工作:")
hobby = input("輸入你的愛好:")
print("""------------ info of 周杰倫 -----------
Name : %s
Age : %d
job : %s
Hobbie: %s
------------- end -----------------""" % (name, name, age, job, hobby))
format{}格式化輸出 name=input('名字:') age=input('年齡:') hobby=input('愛好:') s='我叫{name},今年{age}歲,喜歡{hobby}'.format(name=name,age=age,hobby=hobby) print(s) '''format格式化輸出用的是字典進行占位,用法和%s一樣,內容后面要加點然后再用format'''
?
例題:(2) name = input("輸入名字:")
age= input("輸入年齡:")
print("我叫%s, 今年%d歲了" % (name, int(age)))
例題:(3) print("我.今年%d歲了" % (18))
# %s 處理字符串. 全能的.
# %d 處理數字. 只能接收數字
# 我叫sylar, 我們學習python已經2%了
# 如果你的字符串中.用了%s或者%d這種形式. 那么后面的%, 認為是站位.如果需要用到% . 需要寫%%
# print("我叫%s, 我們學習python已經2%%了" % ("sylar"))
# print("游戲加載已經80%%了") # 如果字符串中沒有用到站位. 那么%還是你的%
# %f = 小數
?
?
運算符
and : 和, 并且. 左右兩端必須同時為真(True) 結果才能是真
or : 或, 或者. 左右兩端有一個是真,結果就是真
not : 取反 非. 非真既假, 非假既真.
運算順序 () => not => and => or . 同樣的運算符從左往右算
例題:
print(3 > 5 or 4 < 6) ? ? ? Trun
?print(1 > 2 and 4 > 5 and 5 < 6 and 7 > 8) ? ? False
print(not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6) ? ? False
?
or 如果第一位是非零. 輸出第一位. 如果是零輸出第二位
and 和or相反
例題:
print (3 and 5 and 0) 結果: 0
print(0 or 0 or 5 or 3) ? 結果: ?5
print(1 or 2 and 3)結果: 1
print(3 and 4 or 8 and 5 or 6) 結果: 4
?
?
編碼:
ASCII 不能裝中文. 8個bit組成.最多有256種可能. 沒有中文 1byte
GBK 有中文. 16個bit => 2byte
把ANSI 空余的位置交給各個國家. 交給中國之后. 中國繼續編碼.-GBK
交給臺灣臺灣繼續編碼. BIG5
依然不能國際化
UNICODE 萬國碼. 目的是把所有國家的文字都進行編碼. 占32位. 缺點: 浪費
ASCII碼的內容是不能改變的. 編碼還應該是原來的編碼. 但是unicode占用32個位置. ASCII會強制在前面補24個0. 在網絡傳輸和數據存儲上會浪費空間
32個bit => 4個byte
UTF-8: 可變長度的unicode編碼, 8的意思是一個字符最少8位
英文: 8bit, 1byte
歐洲: 16bit, 2byte
中文: 24bit, 3byte
ASCII: 8bit 1byte
GBK: 16bit 2byte
unicode:32bit 4byte
UTF-8: 最少8bit, 1byte, 中文: 24bit 3byte
計算機存儲系統單位換算
8bit => 1byte
1024byte => 1KB
1024kb = 1MB
1024MB = 1GB
1024GB = 1TB
?
?字符串
索引:
0 1 2 3 45 6 7 8
# s = "今天很萌.明天也萌"
# 字符串中的第幾個字符
# 索引語法 字符串[索引] 索引從0開始
# print(s[3])
# print(s[5])
# print(s[0])
# print(s[-1]) # 倒數第一個
# print(s[-5]) # . 倒數第5個\
# 正向 從 0 開始
# 反向 從-1 開始
切片:
# 0 1 2 3 4 56 7 8 9 101112 13 14
# s = "我想吃切糕.切糕沒有芝麻好吃!"
# print(s[2:5]) # 切片. 顧頭不顧腚. 前面的能取到. 后面的取不到
# print(s[4:1]) # 給兩個參數. 默認向右切
# print(s[5:8]) # .切糕
#print(s[:7]) # 從頭開始切
# print(s[10:]) # 切到最后
# print(s[:]) # 全都切出來
# print(s[5:99]) # 如果右邊的值. 超過了字符串長度. 切到最后
# print(s[-5:]) # 啥也不寫. 到最后
# 可以跳著切 步長
s = "abcdef,ghijklmn"
# print(s[0:7:2]) # aceg 每2個切一個
# print(s[1:5:3]) # be
# print(s[-8:-2: 2]) # 倒數的也可以跳著切
# print(s[-1:-6:-1])# 反著取.
?
首字母大寫:capitalize s = "alex and wusir gaoji"s1 = s.capitalize()
print (s1)
首字母大寫:capitalize
每個單詞首字母大寫:title()
s = "alex and wusir gaoji"
s2 = s.title() # 標題, 每個單詞首字母大寫 , 特殊字符, 中文在這里算特殊字符
print(s2)
大小寫轉換:(大寫:upper())(小寫:lower())
name = "taiBai"
s1 = name.upper()
print(s1)
s2 = name.lower()
print(s2)
(大寫轉小寫,小寫轉大寫:seapcase())
s = "alexAndEggonAndRiTian"
s1 = s.swapcase()
print(s1)
驗證碼例題: verify_code = "FaD3"
verify_code_user = input("請輸入驗證碼:")
if verify_code.upper() == verify_code_user.upper():
print("驗證碼成功")
else:
print("驗證失敗")
拉長字符,由xxx進行填充:center(數字,"xxx填充") s="hu"
s1 = s.center(15, "*")# 拉長成10個字符. 由*進行填充
print(s1)
去空格
去掉左右兩邊空格:strip()
s = " 麻花 藤. 張x忠, 劉華強 "
s1 = s.strip() # 去掉左右兩邊的空格, 必須要記住
print(s1)
單獨去掉左邊或右邊
lstrip() # 去掉左邊的空格
rstrip() # 去掉右邊的空格
?
去空格例題:
username = input("用戶名:").strip()password = input("密碼:").strip()
if username == 'alex' and password == '123':
print("登錄成功")
else:
print("失敗")
替換:replace s = "alex,wusir,taibai,eggon"
s1 = s.replace("a", "喜歡")
print(s1)
切割:split
例:
s = "李嘉誠_王健林_馬云_劉東強"
lst = s.split("_") # 字符串切割. 切割的結果是列表
print(lst[0])
print(lst[1])
print(lst[2])
print(lst[3])
#也可以切割字
例: s = "我想吃切糕.切糕沒有芝麻好吃!"
s1 = s.replace(".", "")
print(s1)
切幾次
例:
s = "a_b_c_d_e_f_g"
?lst = s.split("_", 2) # 第二個參數. 切的次數
print(lst)
結果:['a', 'b', 'c_d_e_f_g']
#切割不能從頭切到尾
?
?
格式化輸出{}format
例:
print("{person1}很帥, {person2}信嗎?, 不信給你{money}錢".format(person1="旭哥", person2="我們", money=100))
結果:旭哥很帥, 我們信嗎?, 不信給你100錢
另一種格式化輸出:
print("%s很帥, 你信嗎?" % "我")
結果為:我很帥, 你信嗎?
?
?
count 數數
s = "alex wusir taibai 女神"
print(s.count("ai")) ? ? ? ? # 計算ai在原字符串中出現的次數 如果沒出現返回0
?
find 查找
?s = "明天周末了.你們打算干什么去?"
?print(s.find("了")) # 如果你要查找的內容不存在. 返回-1, 如果存在返回索引,find是找到目標在第幾位
?
index 求索引
s = "下周我們要考試了. 你們慌不慌"
print(s.index("慌")) ? ? ? ? ? # 如果找不到報錯.find找不到是返回-1,index找不到是報錯
?
?
?
條件判斷:(startswith判斷字符串是否以xxx開頭 ?? , ? ?endswith 判斷字符串是否以xxx結尾)
s = "寫個啥呢? 哈哈哈"print(s.startswith("寫個啥呢"))
結果:True
?
#??判斷字符串是否以xxx開頭
?
print(s.endswith("哈哈哈"))結果:True
# 判斷字符串是否以xxx結尾
是否是字母和數字組成(isalnum數字和字母 , isdigit數字 , isalpha字母)
s = "abcdefg"print(s.isalnum()) #數字和字母 print(s.isdigit()) # 數字 print(s.isalpha()) # 字母
s = "壹貳"
# print(s.isnumeric()) # 幾乎所有數字
# print(s.isdigit()) # 阿拉伯數字
?
求字符串的長度
s = "abcde"ret = len(s) # 內置函數
print(ret) 結果:5
練習, 計算在字符串"I am sylar, I'm 14 years old, I have 2 dogs!" 出現過多少個數字. 個位為單位 s = "I am sylar, I'm 14 years old, I have 2 dogs!"
count = 0
for w in s:
if w.isdigit():
count = count + 1
print(count)
?
?
?
轉載于:https://www.cnblogs.com/hdy19951010/p/9126837.html
總結
以上是生活随笔為你收集整理的格式化输出,运算符,编码,字符串(索引,切片,大小写转换等等)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 牛客练习赛19 E和F(签到就走系列)托
- 下一篇: 这星期的自我反省