基本資料型別,for迴圈

想吃橙子發表於2019-03-04

基本資料型別

int ==> 整數. 主要⽤來進⾏數學運算
str ==> 字串, 可以儲存少量資料並進⾏相應的操作
bool==>判斷真假, True, False
list==> 儲存⼤量資料.⽤[ ]表⽰
tuple=> 元組, 不可以發⽣改變 ⽤( )表⽰
dict==> 字典, 儲存鍵值對, ⼀樣可以儲存⼤量資料
set==> 集合, 儲存⼤量資料. 不可以重複. 其實就是不儲存value的dict

1.int

整數可以進行的操作:

bit_length()  計算整數在記憶體中佔用的二進位制碼的長度

2.bool

布林值取值只有 True Flase bool值沒有操作

str轉化為int   int(str)

int轉化為str   str(int)

int轉化為bool bool(int)  0是Flase  非0是True

bool => str str(bool) 把bool值轉換成相應的"值"

3.str

把字元連成串. 在python中⽤', ", ''', """引起來的內容被稱為字串. 

切片和索引

索引. 索引就是下標. 切記, 下標從0開始

s = '1234567'

此處第0位是'1'   第一位是'2'   -1位是'7'

print(s[0])  ---> '1'

切片, 我們可以使⽤下標來擷取部分字串的內容

語法: str[start: end]
規則: 顧頭不顧腚, 從start開始擷取. 擷取到end位置. 但不包括end

print(s[0:3])   ----> 123  從字串的第0位擷取到第3位 但第三位不包含在輸出結果內

跳著擷取

print(s[0:5:2])  ----> 13  從字串的第0位擷取到第5位 第五位不列印 步長為2 每兩個字元取出一個值

步⻓: 如果是整數, 則從左往右取. 如果是負數. 則從右往左取. 預設是1
切片語法:
str[start:end:step]
start: 起始位置
end: 結束位置
step:步⻓

字串的相關操作⽅法

⼤⼩寫轉來轉去

ret1 = s1.capitalize() # 首字母大寫

ret = s1.swapcase() # ⼤⼩寫互相轉換

ret = s1.lower() # 全部轉換成⼩寫

ret = s1.upper() # 全部轉換成⼤寫

應⽤, 校驗⽤戶輸⼊的驗證碼是否合法
verify_code = "abDe"
user_verify_code = input("請輸⼊驗證碼:")
if verify_code.upper() == user_verify_code.upper():
print("驗證成功")
else:
print("驗證失敗")

每個被特殊字元隔開的字⺟⾸字⺟⼤寫   中⽂也算是特殊字元
s3 = "alex eggon,taibai*yinwang_麻花藤

ret = s3.title()

print(ret)    # Alex Eggon,Taibai*Yinwang_麻花藤

切來切去

s5 = "周杰倫"
ret = s5.center(10, "*") # 拉⻓成10, 把原字串放中間.其餘位置補*

去空格
s7 = " alex wusir haha "
ret = s7.strip() # 去掉左右兩端的空格
print(ret)
ret = s7.lstrip() # 去掉左邊空格
print(ret)
ret = s7.rstrip() # 去掉右邊空格
print(ret)
# 應⽤, 模擬⽤戶登入. 忽略⽤戶輸⼊的空格
username = input("請輸⼊⽤戶名:").strip()
password = input("請輸⼊密碼: ").strip()
if username == 'alex' and password == '123':
print("登入成功")
else:
print("登入失敗")
s7 = "abcdefgabc"
print(s7.strip("abc")) # defg 也可以指定去掉的元素,

字串替換
s8 = "sylar_alex_taibai_wusir_eggon"
ret = s8.replace('alex', '⾦⻆⼤王') # 把alex替換成⾦⻆⼤王
print(s8) # sylar_alex_taibai_wusir_eggon 切記, 字串是不可變物件. 所有操作都 
是產⽣新字串返回
print(ret) # sylar_⾦⻆⼤王_taibai_wusir_eggon
ret = s8.replace('i', 'SB', 2) # 把i替換成SB, 替換2個
print(ret) # sylar_alex_taSBbaSB_wusir_eggon

字串切割
s9 = "alex,wusir,sylar,taibai,eggon"
lst = s9.split(",") # 字串切割, 根據,進⾏切割
print(lst)
s10 = """詩⼈
學者
感嘆號
渣渣"""
print(s10.split("\n")) # ⽤\n切割 (/n  :  換行)

如果切割符在左右兩端. 那麼⼀定會出現空字串.深坑請留意

格式化輸出
# 格式化輸出
s12 = "我叫%s, 今年%d歲了, 我喜歡%s" % ('sylar', 18, '周杰倫') # 之前的寫法
print(s12)
s12 = "我叫{}, 今年{}歲了, 我喜歡{}".format("周杰倫", 28, "周潤發") # 按位置格式化
print(s12)
s12 = "我叫{0}, 今年{2}歲了, 我喜歡{1}".format("周杰倫", "周潤發", 28) # 指定位置
print(s12)
s12 = "我叫{name}, 今年{age}歲了, 我喜歡{singer}".format(name="周杰倫", singer="周潤
發", age=28) # 指定關鍵字
print(s12)

s13 = "我叫sylar, 我喜歡python, java, c等程式設計語⾔."
ret1 = s13.startswith("sylar") # 判斷是否以sylar開頭
ret3 = s13.endswith("語⾔") # 是否以'語⾔'結尾

ret7 = s13.count("a") # 查詢"a"出現的次數

ret5 = s13.find("sylar") # 查詢'sylar'出現的位置

ret6 = s13.find("tory") # 查詢'tory'的位置, 如果沒有返回-1

ret7 = s13.find("a", 8, 22) # 切⽚找

ret8 = s13.index("sylar") # 求索引位置. 注意. 如果找不到索引. 程式會報錯

條件判斷

是否由字⺟和數字組成
print(s.isalnum())

是否由字⺟組成

print(s.isalpha())

是否由數字組成, 不包括⼩數點
print(s14.isdigit())

練習. ⽤演算法判斷某⼀個字串是否是⼩數
s17 = "-123.12"
s17 = s17.replace("-", "") # 替換掉負號
if s17.isdigit():
print("是整數")
else:
if s17.count(".") == 1 and not s17.startswith(".") and not s17.endswith("."):
print("是⼩數")
else:
print("不是⼩數")

計算字串的⻓度
s18 = "我是你的眼, 我也是a"
ret = len(s18) # 計算字串的⻓度

4.迭代
我們可以使⽤for迴圈來便利(獲取)字串中的每⼀個字元
語法:
for 變數 in 可迭代物件:

pass
可迭代物件: 可以⼀個⼀個往外取值的物件

把可迭代物件裡面的字元一個一個拿出來賦予變數

 

 

 

相關文章