python基礎學習-字符串常見操做

字符串常見操做

索引

s = "abcdefg"
# 字符串數據,切片後取出的數據都是字符串類型
# 從左至右取值:從0開始
# 從右向左取值:從-1開始
print("s[0]:%s" % s[0])    # a
print("s[-1]:%s" % s[-1])   # g

切片

s = "abcdefg"
s1 = s[:]    # 取所有
s2 = s[::2]   # 從左至右取值,步長爲2  aceg
s3 = s[2::-1]  # 從2下標開始向左取值,步長爲1     cba
s4 = s[-1::-2]    # 從-1下標開始向左取值,步長爲2  geca
s5 = s[2:5]   # 從2下表開始取值,到5下表截至,不包含5  cde

字符串的常見操做

# 字符串的經常使用操做方法    字符串操做不會對原有字符串進行改變
s = "taibai"
word = "hello world"
print(s.count("i"))   # 統計字符串中xx出現次數   返回數據int  2
print(s.upper())    # 字符串整個轉換爲大寫    TAIBAI
print(s.lower())    # 字符串整個轉換爲小寫    taibai
print(s.capitalize())   # 字符串首字母轉換爲大寫    Taibai
print(word.capitalize())  # 整個字符串首字母轉換爲大寫(整個字符串看爲一個總體)Hello world
print(s)            # 字符串操做不會對原有字符串進行改變   taibai

# 應用   驗證碼不區分大小寫(統一轉換爲大寫或小寫)
user_name = input("請輸入用戶名:")
password = input("請輸入密碼:")
code = "QwEr"
your_code = input("請輸入驗證碼(不區分大小寫):")
if your_code.lower() == code.lower():
    if user_name == "zhangsan" and password == "1234":
        print("登陸成功")
    else:
        print("驗證碼或密碼錯誤")
else:
    print("驗證碼錯誤")

# strip     去空(去除左右空格)    包含:\n、\t
str1 = "      \nabcd31      12     \t"
print(str1.strip())
print(len(str1))    # 27   去空後,不影響原有字符串

# lstrip    去除左邊空格
print(str1.lstrip())

# rlstrip   去除右邊空格
print(len(str1.rstrip()))    # 去除右邊空格

# join 字符串拼接(用什麼把字符串拼接起來)
str1 = "abcd"     # 若是被拼接元素是字符串,則把字符串拆分紅單獨元素,再進行拼接
print("+".join(str1))    # a+b+c+d

str2 = ["a1", "a2" ,"a3"]     # 被拼接元素若是是列表,則列表中元素必須是字符串,若是是數字,則會報錯
print(":".join(str2))       # 拼接後:a1:a2:a3

# split 把字符串以某元素分割    分割成多個字符串,放在列表中,不包含分割元素
str1 = "abcdefg"
print(str1.split("b"))     # 分割後:['a', 'cdefg']

str2 = ":abd:def:efg:fgh"
print(str2.split(":", 2))    # 2爲分割次數,表示分割兩次    分割後:['', 'abd', 'def:efg:fgh']

# count   統計字符串出現次數
str1 = "abcdabcdefabceasd"
print(str1.count("abc"))    # 3

# format
msg = "我叫{},今年{},就讀於{}"
msg1 = msg.format("張三", 18, "墨爾本大學")
print(msg1)    # 我叫張三,今年18,就讀於墨爾本大學

# 能夠直接再字符串後拼接
msg3 = "我叫{},今年{},就讀於{}".format("李四", 25, "北京大學")
print(msg3)    # 我叫李四,今年25,就讀於北京大學

# 使用索引的方法,能夠減小format後參數的個數,重複參數不用寫屢次
msg3 = "我叫{0},今年{1},就讀於{2},無論我去到哪,我都叫{0}".format("李四", 25, "北京大學")
print(msg3)    # 我叫李四,今年25,就讀於北京大學,無論我去到哪,我都叫李四

# 使用參數名的方法傳遞,format後參數指定參數值
msg4 = "我叫{name},今年{age},就讀於{adu},無論我去到哪,我都叫{name}".format(age=25, adu="北京大學", name="李四")
print(msg4)

# is系列   判斷是不是什麼類型
a = "abc"
b = "abc123"

# isalnum   字符串由字母或數字組成
print(a.isalnum())  # True
print(b.isalnum())  # True

# isdecimal   字符串只由十進制組成  不包含羅馬數字,中文數字,小數
print(a.isdecimal())   # False
print(b.isdecimal())   # False

# isalpha   字符串只由字母組成
print(a.isalpha())    # True
print(b.isalpha())    # False

# isdigit   判斷是不是整數    不包含羅馬數字,中文數字,小數
num1 = "1234"
num2 = "1234abc"
print(num1.isdigit())    # True
print(num2.isdigit())    # False

應用 判斷是不是小數

# 應用   判斷是不是小數
"""
一、判斷小數點個數是不是1   count
二、以小數點分割   判斷小數點右邊是不是整數
三、判斷小數點左邊
    是整數isdigit
    若是是負整數
"""
def is_float(s):
    str1 = str(s)
    if str1.count(".") == 1:
        left = str1.split(".")[0]
        right = str1.split(".")[1]
        if right.isdigit():
            if left.count("-") == 1 and left.startswith("-"):
                num3 = left.split("-")[-1]
                if num3.isdigit():
                    return True
            elif right.isdigit():
                return True
    else:
        return False

# 調用is_float函數執行
price = input("請輸入商品價格:")
if is_float(price):
    print("輸入正確:%s" % price)
else:
    print("輸入有誤:%s" % price)
相關文章
相關標籤/搜索