Python全棧工程師(字符串/序列)


ParisGabriel

 
 
Python 入門基礎
 
 
 

字符串:str
用來記錄文本信息
字符串的表示方式:
在非注釋中凡是用引號括起來的部分都是字符串
‘’ 單引號
“” 雙引號
''' ''' 三單引
""" """ 三雙引
有內容代表非空字符串否則是空字符串

區別:
單引號內的雙引號不算結束符
雙引號內的單引號不算結束符
三引號內的換行會自動轉換為換行符
三引號內可以包含單引號和雙引號

隱式字符串拼接:

s = "I'm a I'm a programmer" 'heoll "wored"'

轉移符:
\' 單引號
\" 雙引號
\\ 單反斜杠
\n 換行
\r 返回光標至行首
\t 水平制表符
\v 垂直制表符
\f 換頁
\b 倒退
\0 空字符,字符值為0
\xXX ,XX為兩位16進制表示的自符
\uXXXX ,XXXX為4個16進制的Unicode16字符
\UXXXXXXXX ,8個16進制表示的Unicode32字符

ASCII編碼:
man ASCII :查看幫助文檔命令

 


常用ASCII編碼:
字符 十進制 十六進制
0 48 0x30
A 65 0x41
a 97 0x61

Unicode:
統一編碼,分為Unicode16、Unicode32

序列的概念:
字符串就是序列
函數:
len(x) 返回字符串的字符個數
raw 字符串:
讓轉義符號\無效
格式:
r‘字符串內容’
print(r“\n\\\t”)
字符串的運算:
+ 用於拼接字符串
* 用於生成重復字符串
字符串的相乘只能與整數
+=   *= 與其他符合運算符相同
in / not in 運算符:
用於判斷某個字符串是否在
相當於字符串出現過 如果出現過返回true 否則返回false
字符串的比較運算:
> >= < <= == !=
依次按照編碼進行比較,直到最短字符串結束為止

索引(下標):
Python的字符串是不可以改變字符序列的

 

index:
字符串[整數表達式]
Python序列都可以用索引來訪問序列中的對象
Python的序列正向索引是沖0開始的最后一個索引為len(s)-1
Python序列的反響索引是從-1開始的 -1是最后一個 第一個是 -len(s)

切片:
slice
從一個字符串序列中取出相應的元素重新組成一個字符串系列
語法:
字符串序列[(開始索引b):(結束索引e):(步長s)]
小括號括起的部分代表可省略
說明:
開始索引是切片開始切下的位置,0代表第一個元素,1代表第二個,-1代表最后一個
結束索引是切片的終止索引(但不包括終止點)
步長:
是切片每次獲取當前元素后移動的方向和偏移量
沒有步長,相當於取值完成后向右移動一個索引的位置默認1
當步長代表為正數時取正向切片 步長默認為1 開始位置為0 結束為len(s)步長代表下一次索引的取值增長值
當步長為負數時 取反向切片 默認的起始位置是最后一個元素,終止位置是第一個元素的前一個位置

Python3中常用於序列函數:
len(x)返回序列長度

max(x)返回序列最大值元素

min(x)返回序列最小止元素

字符串編碼轉換函數:
ord(c)返回一個字符的Unicode值(十進制)

chr(i)返回 i這個整數的值所對應的字符

整數轉字符串函數:
bin(i) 將整數轉換為二進制的字符串

oct(i) 將整數轉換為八進制的字符串

hex(i) 將整數轉換為十六進制的字符串

二進制轉換其他進制是非常好轉的 如圖:

100=4   101=5 10=2  156=0o452 (八進制)

1100=c 1001=9       156=0x9c (十六進制)

字符串的構造函數:
str(obj=“”) 將對象轉換為字符串

常用的字符串方法:
文檔參見:
對象.方法名(方法傳參)
"abc".isalpha() # 語法是對的
123.isalpha() # 語法是錯的
方法 說明
S.isdigit() 判斷字符串中的字符是否全為數字
S.isalpha() 判斷字符串是否全為英文字母
S.islower() 判斷字符串所有字符是否全為小寫英文字母
S.isupper() 判斷字符串所有字符是否全為大寫英文字母
S.isspace() 判斷字符串是否全為空白字符
S.center(width[,fill]) 將原字符串居中,左右默認填充空格 width:所居中字符串的長度 fill:默認填充空格

S.count(sub[, start[,end]]) 獲取一個字符串中子串的個數 sub:所要獲取的字符串 start:起始位置 end:結束位置
S.find(sub[, start[,end]]) 獲取字符串中子串sub的索引,失敗返回-1 start:起始位置 end:結束位置

S.strip() 返回去掉左右空白字符的字符串
S.lstrip() 返回去掉左側空白字符的字符串
S.rstrip() 返回去掉右側空白字符的字符串
S.upper() 生成將英文轉換為大寫的字符串
S.lower() 生成將英文轉換為小寫的字符串
S.replace(old, new[, count]) 將原字符串的old用new代替,生成一個新的字符串 count:更換的次數
S.startswith(prefix[, start[, end]]) 返回S是否是以prefix開頭,如果以prefix開頭返回True,否則返回False,
S.endswith(suffix[, start[, end]]) 返回S是否是以suffix結尾,如果以suffix結尾返回True,否則返回False

以下是不常用的
S.title() 生成每個英文單詞的首字母大寫字符串
S.isnumeric() 判斷字符串是否全為數字字符

練習:
1.
輸入一個字符串用s綁定
判斷輸入有幾個人空格
將原字符串的左右空格空白符去掉
打印剩余的字符個數
判斷輸入的是否是數字
如果是數字判斷這個數是否大於100

 答案:

print("Answer to question 1:", "\n")

s = input("plaese input at will string:")
print("you input string blank have ", s.count(" "))
print("string surplus:", len(s.strip()))
if s.isdigit() is True:
    if int(s) > 100:
        print("input integer:", s, ">100")
    else:
        print("input integer:", s, "<100")
else:
    print("you input contain alpha:", s)

 

2.
輸入3行文字,讓這三行文字在一個方框內居中顯示
顯示如下:
+---------------+
|       hello      |
|    123123    |
|       |
+---------------+
注:請不要輸入中文

答案:

print("Answer to question 2:", "\n")

a = input("plaese input at will string 1:")
b = input("plaese input at will string 2:")
c = input("plaese input at will string 3:")
top = a
if top < b:
    top = b
if top < c:
    top = c
print("+" + "-" * (len(top) * 2 + 10) + "+")
print("|" + a.center(len(top) * 2 + 10) + "|")
print("|" + b.center(len(top) * 2 + 10) + "|")
print("|" + c.center(len(top) * 2 + 10) + "|")
print("+" + "-" * (len(top) * 2 + 10) + "+")

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM