3 、字符串 一、repr() repr():返回对象的“官方字符串表示”,更精确 ,主要给程序看,方便调试。 print()(实际调用 str()):返回对象的“可读字符串表示”,更友好 ,主要给人看。 二、字符串常量 import string
print ( string . ascii_letters ) # abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
print ( string . ascii_lowercase ) # abcdefghijklmnopqrstuvwxyz
print ( "-----------" )
print ( string . ascii_uppercase ) # ABCDEFGHIJKLMNOPQRSTUVWXYZ
print ( string . digits ) # 0123456789
print ( "-----------" )
print ( string . punctuation ) # '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
print ( string . printable ) # digits + letters + punctuation + whitespace
print ( "-----------" )
print ( string . whitespace ) # space + tab + linefeed + return + ...
三、字符串操作符 1、+和* print ( "abc" + "def" )
print ( "abc" * 3 )
2、in # 输出True/False
print ( "ring" in "strings" ) # True
print ( "wow" in "amazing!" ) # False
print ( "Yes" in "yes!" ) # False
print ( "" in "No way!" ) # True
3、索引和切片 s = "abcdefgh"
print ( s )
# 负向索引
print ( s [ - 1 ])
print ( s [ - 2 ])
s = "abcdefgh"
print ( s )
# 切片
"""
切片是左闭右开区间
"""
print ( s [ 0 : 3 ])
print ( s [ 1 : 3 ])
"""
切片也可以有步长作为第三个参数
"""
print ( s [ 1 : 7 : 2 ])
print ( s [ 1 : 7 : 3 ])
# 反转字符串使用切片
def ReverseString ( s ):
return s [:: - 1 ]
# 使用内置函数
def ReverseString2 ( s ):
return '' . join ( reversed ( s ))
四、遍历 s = "abcde"
for i in range ( 0 , len ( s )):
print ( i , s [ i ])
for c in s :
print ( c )
names = "Billy,Devlin,Tommy,Josh,Lucia,"
for name in names . split ( "," ):
print ( name )
quotes = """ \
Dijkstra: Simplicity is prerequisite for reliability.
Knuth: If you optimize everything, you will always be unhappy.
Dijkstra: Perfecting oneself is as much unlearning as it is learning.
Knuth: Beware of bugs in the above code; I have only proved it correct, not tried it.
Dijkstra: Computer science is no more about computers than astronomy is about telescopes.
"""
for line in quotes . splitlines ():
if line . startswith ( "Dijkstra" ):
print ( line )
五、转义符 转义字符 描述 示例代码 输出结果/说明 \\ 反斜杠 print("\\") \ \' 单引号 print('\'') ' \" 双引号 print("\"") " \a 响铃(Alert) print("\a") 响一声(部分终端有效) \b 退格(Backspace) print("AB\bC") AC(B 被删掉) \n 换行(newline) print("Hello\nWorld") Hello``World \t 横向制表符(Tab) print("A\tB") A B \v 纵向制表符(Vertical Tab) print("A\vB") A B \f 换页符(Form Feed) print("A\fB") A B \r 回车(Carriage Return) print("Hello\rWorld") World(覆盖前部分) \000 空字符(Null) print("\000") 显示为空 \ooo 八进制字符(ooo为0~7) print("\110\145\154\154\157") Hello \xhh 十六进制字符(hh为两位十六进制数) print("\x48\x65\x6c\x6c\x6f") Hello
六、内建函数 函数 用途 len() 返回长度 chr() 返回ASCII码代表的字母 ord() 返回ASCII码 eval() 把字符串当作表达式运行(⚠️安全隐患)
1、判断 函数 用途 isalnum() 判断字符串是否只包含字母和数字(字母或数字 ) isalpha() 判断字符串是否只包含字母(不包含数字或其他符号) isdigit() 判断字符串是否只包含数字(只能是 0-9) islower() 判断字符串中的字母是否全为小写 isupper() 判断字符串中的字母是否全为大写 isspace() 判断字符串是否只包含空白字符(空格、换行、制表等)
2、编辑 函数 用途 lower() 返回将字符串中所有字母转换为小写的新字符串 upper() 返回将字符串中所有字母转换为大写的新字符串 strip() 去除字符串两端的空白字符(空格、换行、制表符等) replace(old, new) 将字符串中的指定子串 old 替换为 new,返回新字符串
3、子串搜索 函数 用途说明 count("<target>") 统计子串 <target> 在字符串中出现的次数 startswith("<target>") 判断字符串是否以 <target> 开头,返回布尔值 endswith("<target>") 判断字符串是否以 <target> 结尾,返回布尔值 find("<target>") 返回 <target> 第一次出现的索引,找不到返回 -1 index("<target>") 返回 <target> 第一次出现的索引,找不到会报错
七、f-string 在 f-string 中,表达式被花括号 {} 包围,Python 会在运行时将表达式的结果插入到字符串中。
当然也可以使用 % 来格式化字符串(和C++基本一致) x = 101
y = 1101
print ( f "Do you know that { x } + { y } = { x + y } " )
八、基本文件 I/O def readfile ( path ):
with open ( path , 'r' ) as f :
return f . read ()
def writefile ( file , content ):
with open ( file , 'w' ) as f :
f . write ( content )
contentsToWrite = "This is a test."
writefile ( "test.txt" , contentsToWrite )