1. 程式人生 > 實用技巧 >零基礎小白學習:python之最詳細字串篇

零基礎小白學習:python之最詳細字串篇

python中引號引起來的就是字串

索引

索引(下標)通過索引下標可以精確的地位到某個元素

# 變數名未 titl的字串
title = 'python最NB'

print(title[0])
# 控制檯輸出 p
print(title[1])
# 控制檯輸出 y
print(title[5])
# 控制檯輸出 n
print(title[-1])
# 控制檯輸出 B
複製程式碼

切片

# 切片
language = 'python, java, javascript, c, c++, c#'
# 第一個引數是開始的索引下標, 第二個是結束的索引下標,(但是不會取到最後一個索引的元素, xxx[x:y] (y-1))

# 從索引為0的位置開始,取後面所有元素
print(language[0:])
# 控制檯輸出 python, java, javascript, c, c++, c#

# 從倒數索引的第一個元素開始,向前面取,取所有元素。
print(language[:-1])
# 此時不包含 #元素,
# 控制檯輸出 python, java, javascript, c, c++, c

# 從索引為0個元素開始,取到第6個元素。
print(language[0:6])
# 控制檯輸出 pytho

# 從索引為8的元素開始,取到第12個元素。
print(language[8:12])
# 控制檯輸出 java

# 從索引為14的元素開始,取到第24個元素。
print(language[14:24])
# 控制檯輸出 javascript

# 步長
# **[起始位置:終止位置:步長] 步長預設為1**

# 從索引為0的元素開始,取得末尾, 步長為1
print(language[0::1])
# 控制檯輸出 python, java, javascript, c, c++, c#

# 從索引為0的元素開始,取得末尾, 步長為2
print(language[0::2])
# 控制檯輸出 pto,jv,jvsrp,c +,c

# 從索引為8的元素開始,到索引為24的元素結束, 步長為 4
print(language[8:24:4])
# 控制檯輸出 j,vr

# 從索引為24的元素開始,到索引為24的元素結束, 步長為 6
print(language[24:-1:6])
# 控制檯輸出 ,+

print(language[100:800:50])
# 切片的時候起始位置和終止位置都超出的時候不會進行報錯

# print(language[100])
# 索引的時候索引值超出範圍的時候會報錯
複製程式碼

字串方法

如果大家在學習中遇到困難,想找一個python學習交流環境,可以加入我們的python圈,裙號930900780,可領取python學習資料,會節約很多時間,減少很多遇到的難題。

字串大小寫方法

# 定義變數名為 message 的字串
message = "I'm a string method"
# 字串全小寫
print(message.lower())
# 控制檯輸出 i'm a string method

# 字串全大寫
print(message.upper())
# 控制檯輸出 I'M A STRING METHOD

# 引用場景
code = input('請輸入驗證碼(ABCD):')
if code.upper() == 'ABCD':
    print('驗證碼正確')
else:
    print('驗證碼錯誤!請重試。。。')
複製程式碼

首字母大寫

message = 'python'

print(message.capitalize())
# 控制檯輸出 Python
複製程式碼

每個單詞首字母大寫

message = 'Python is the best language in the world'

print(message.title())
# # 控制檯輸出 Python Is The Best Language In The World
複製程式碼

大小寫反轉

message = 'Python is the best language in the world'
print(message.swapcase())
# 控制檯輸出 pYTHON IS THE BEST LANGUAGE IN THE WORLD
複製程式碼

以什麼開頭 startswith()

# startswith()方法用於檢查字串是否是以指定子字串開頭,如果是則返回True,否則返回False。如果引數 beg 和 end  指定值,則在指定範圍內檢查

# startswith()方法語法:
# str.startswith(str, beg=0,end=len(string));
# 引數
# str -- 檢測的字串。
# strbeg -- 可選引數用於設定字串檢測的起始位置。
# strend -- 可選引數用於設定字串檢測的結束位置。

message = 'startswith'
print(message.startswith('s'))
# 控制檯輸出 True

message = 'startswith'
print(message.startswith('s', 1, 5))
# 控制檯輸出 False

message = 'startswith'
print(message.startswith('s', 5, -1))
# 控制檯輸出 True
複製程式碼

以什麼結尾 endswith()

# 以什麼結尾
# endswith()方法用於檢查字串是否是以指定子字串開頭,如果是則返回True,否則返回False。如果引數 beg 和 end  指定值,則在指定範圍內檢查

# endswith()方法語法:
# str.endswith(str, beg=0,end=len(string));
# 引數
# str -- 檢測的字串。
# strbeg -- 可選引數用於設定字串檢測的起始位置。
# strend -- 可選引數用於設定字串檢測的結束位置。

message = 'endswith'
print(message.endswith('h'))
# 控制檯輸出 True

print(message.endswith('s'))
# 控制檯輸出 False
複製程式碼

統計

# Python count() 方法用於統計字串裡某個字元出現的次數。可選引數為在字串搜尋的開始與結束位置
# str.count(sub, start= 0,end=len(string))
# 引數
# sub -- 搜尋的子字串
# start -- 字串開始搜尋的位置。預設為第一個字元,第一個字元索引值為0。
# end -- 字串中結束搜尋的位置。字元中第一個字元的索引為 0。預設為字串的最後一個位置。
message = 'abcabcsdeflsdksdasd'

# 查詢message字串中 s字元出現了幾次
print(message.count('s'))
# 控制檯輸出 4

# 查詢message字串中 a字元出現了幾次
print(message.count('a'))
# 控制檯輸出 3
複製程式碼
# Python strip() 方法用於移除字串頭尾指定的字元(預設為空格)或字元序列。
#
# 注意:該方法只能刪除開頭或是結尾的字元,不能刪除中間部分的字元。
#
# 語法
# strip()方法語法:
#
# str.strip([chars]);
# 引數
# chars -- 移除字串頭尾指定的字元序列。
message = '**nmb**'

# 去掉頭和尾的 **字元
print(message.strip('**'))
# # 控制檯輸出 nmb

# 注意刪除多個字元時:只要頭尾有對應其中的某個字元即刪除,不考慮順序,直到遇到第一個不包含在其中的字元為止。
message = '123132231213321312==321312213231123132'
print(message.strip('123'))
# # 控制檯輸出 ==
複製程式碼

分割 split()

# 分割:以空格和換行符以及製表符進行分割 或者任意符合
# split() 方法語法:
# 
# str.split(str="", num=string.count(str)).
# 引數
# str -- 分隔符,預設為所有的空字元,包括空格、換行(\n)、製表符(\t)等。
# num -- 分割次數。預設為 -1, 即分隔所有。
# 返回值
# 返回分割後的字串列表。
message = '*1 *2* 3*4 *5* 6*7'

# 以 空格' 號分割
print(message.split())
# 控制檯輸出['*1', '*2*', '3*4', '*5*', '6*7']

# 以 * 號分割
print(message.split('*'))
# 控制檯輸出 ['', '1 ', '2', ' 3', '4 ', '5', ' 6', '7']
複製程式碼

替換 replace()

# 替換
# 語法
# replace()方法語法:
# 
# str.replace(old, new[, max])
# 引數
# old -- 將被替換的子字串。
# new -- 新字串,用於替換old子字串。
# max -- 可選字串, 替換不超過 max 次
# 返回值
# 返回字串中的 old(舊字串) 替換成 new(新字串)後生成的新字串,如果指定第三個引數max,則替換不超過 max 次。

message = 'java是世界上最好的語言'

# 將 java 替換為 python
print(message.replace('java', 'python'))
# 控制檯輸出 python是世界上最好的語言
複製程式碼

居中---填充

# Python center() 返回一個原字串居中,並使用空格填充至長度 width 的新字串。預設填充字元為空格。
# 
# 語法
# center()方法語法:
# 
# str.center(width[, fillchar])
# 引數
# width -- 字串的總寬度。
# fillchar -- 填充字元。
# 返回值
# 該方法返回一個原字串居中,並使用空格填充至長度 width 的新字串。
message = 'python'

print(message.center(30, '*'))
# 控制檯輸出 ************python************
複製程式碼

查詢

# Python find() 方法檢測字串中是否包含子字串 str ,如果指定 beg(開始) 和 end(結束) 範圍,則檢查是否包含在指定範圍內,如果包含子字串返回開始的索引值,否則返回-1。
#
# 語法
# find()方法語法:
#
# str.find(str, beg=0, end=len(string))
# 引數
# str -- 指定檢索的字串
# beg -- 開始索引,預設為0。
# end -- 結束索引,預設為字串的長度。
# 返回值
# 如果包含子字串返回開始的索引值,否則返回-1。
message = 'python'

print(message.find('n'))
# 控制檯輸出 5

print(message.find('h', 0, 4))
# 控制檯輸出 3

print(message.find('n', 2, 4))
# 控制檯輸出 -1
複製程式碼

查詢

# 查詢
# Python index() 方法檢測字串中是否包含子字串 str ,如果指定 beg(開始) 和 end(結束) 範圍,則檢查是否包含在指定範圍內,(該方法與 python find()方法一樣,只不過如果str不在 string中會報一個異常。 現在好像不會了)
#
# 語法
# index()方法語法:
#
# str.index(str, beg=0, end=len(string))
# 引數
# str -- 指定檢索的字串
# beg -- 開始索引,預設為0。
# end -- 結束索引,預設為字串的長度。
# 返回值
# 如果包含子字串返回開始的索引值,否則丟擲異常。
message = 'python'

print(message.index('o'))
# # 控制檯輸出 4

print(message.index('n'))
# # 控制檯輸出 5
#
print(message.index('h', 0, 4))
# # 控制檯輸出 3

# print(message.index('x', 0, 4))
# # 控制檯輸出 
# Traceback (most recent call last):
#   File "C:\Users\Administrator\Desktop\py\py_01_字串.py", line 280, in <module>
#     print(message.index('x', 0, 4))
# ValueError: substring not found
複製程式碼

拼接

# Python join() 方法用於將序列中的元素以指定的字元連線生成一個新的字串。
#
# 語法
# join()方法語法:
#
# str.join(sequence)
# 引數
# sequence -- 要連線的元素序列。
# 返回值
# 返回通過指定字元連線序列中元素後生成的新字串

message = 'python'

print('*'.join(message))
# 控制檯輸出 p*y*t*h*o*n
複製程式碼

格式化 format()


# 按照位置順序進行填充
name = "python{},{},{}"
print(name.format(1, 2, 3))
# 控制檯輸出 python1,2,3

# # 按照索引值進行填充
name = "python{2},{0},{1}"
print(name.format("a", "b", "c"))
# 控制檯輸出 pythonc,a,b

# # 按照關鍵字進行填充
name = "python{a},{b},{c}"
print(name.format(a=1, c=2, b=3))
# 控制檯輸出 python1,3,2
複製程式碼

is 系列

# num = 'python'
# 判斷是不是字母,數字,中文
# print(num.isalnum())
# 控制檯輸出 true

# message = 'pppppppp'
# # 判斷是不是字母,中文
# print(message.isalpha())
# # 控制檯輸出 true

# message = '11111111111d'
# # 判斷字串是不是全都是阿拉伯數字
# print(message.isdigit())
# # # 控制檯輸出 false
# message = '11111111111'
# # 判斷字串是不是全都是阿拉伯數字
# print(message.isdigit())
# # # 控制檯輸出 true

message = '1233'
# 判斷是否是十進位制
print(message.isdecimal())
# # # 控制檯輸出 true

message = '1233d'
# 判斷是否是十進位制
print(message.isdecimal())
# # # 控制檯輸出 false
複製程式碼

這裡還有很多未列出的方法,那就只有小夥伴們自己學習和發現了!

最後多說一句,小編是一名python開發工程師,這裡有我自己整理了一套最新的python系統學習教程,包括從基礎的python指令碼到web開發、爬蟲、資料分析、資料視覺化、機器學習等。想要這些資料的可以進裙930900780領取。

本文章素材來源於網路,如有侵權請聯絡刪除。