01-Python的基础知识4
Posted cmn-note
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了01-Python的基础知识4相关的知识,希望对你有一定的参考价值。
- 字符串
- 字符串属于不可变序列,一般使用单引号、双引号或三引号进行界定,并且单引号,双引号、三单引号、三双引号还可以相互嵌套,用来表示复杂的字符串。
- 字符串类型是一类特殊的数据集对象,称为序列。序列类型中的对象按一定顺序排列,即对象序列。
- 构建字符串:
- 字符串构造函
- 使用函数str()
x = str(123) print(x,type(x)) y = str(u‘dd456dd‘) print(y,type(y)) #结果 # 123 <class ‘str‘> # dd456dd <class ‘str‘>
- 使用引号:
- 单引号:‘abc‘、‘a‘、‘123‘。
- 双引号:"a"、"123"、"acs"。
- 单双引号可以交错使用
- 三单或者三双:"‘Python"‘、"""Python"""。
- 三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。
- 带 r或者R前缀的Raw字符串:r"abc\n123"。
- Python不会解析其中的转义字符。典型应用在表示文件路径。
# fl = open(‘d:\temp\newlist.py‘, ‘r‘)
#上面代码会执行错误
fl = open(‘d:\\temp\\newlist.py‘, ‘r‘) #使用反斜杠表示转义字符
fl = open(r‘d:\\temp\\newlist.py‘, ‘r‘) #使用Raw字符串表示文件名字字符串
fl = open(‘d:/temp/newlist.py‘, ‘r‘) # 使用正斜杠表示
- 带 u或者U前缀的Unicode字符串:u"asdf"、U"asdss"。 以u或U开头的字符串表示unicode字符串
- Unicode是书写国际文本的标准方法。如果你想要用非英语写文本,那么你需要有一个支持Unicode的编辑器。
- 类似地,Python允许你处理Unicode文本——你只需要在字符串前加上前缀u或U。
print(u‘我‘) print(u‘458\t\tdd‘) #不能忽视转义字符 #结果: #我 #458 dd
- 转义字符
转义字符 | 描述 |
---|---|
\(在行尾时) | 续行符 |
\\ | 反斜杠符号 |
\‘ | 单引号 |
\" | 双引号 |
\a | 响铃 |
\b | 退格(Backspace) |
\e | 转义 |
\000 | 空 |
\n | 换行 |
\v | 纵向制表符 |
\t | 横向制表符 |
\r | 回车 |
\f | 换页 |
\oyy | 八进制数yy代表的字符,例如:\o12代表换行 |
\xyy | 十进制数yy代表的字符,例如:\x0a代表换行 |
\other | 其它的字符以普通格式输出 |
- 访问字符串中的值
s = "abc"
#直接访问
print(s)
#注意有反斜杠的字符串,使用Raw字符串
s = "Let‘s go"
print(s)
s1 = "Let\‘s go"
print(s1)
- 字符串运算符
a = ‘123‘ b = ‘wwwas‘ print(a+b) print(a*2) print(b*2) # 123wwwas # 123123 # wwwaswwwas
- 字符串比较
- 两个单字符之间的比较都会转化为对应得ASCII值之间的关系。
- 使用ord()函数和chr()可以查看相应的ASCII码。
#查看ASCII码 print(ord(‘a‘)) print(chr(97)) #两个字符的比较 print((‘a‘<‘b‘)) #结果: #97 #a #True
- 多字符之间:从索引为0的位置开始比较,若相等则索引值加一再比较,等待字符串结束。
v1 = "ab" < "abc" v2 = "ab" < "ac" v3 = "ab " < "ab" print(v1,v2,v3) #结果: #True True False
字符串格式化
- % 格式符方式
- 格式: %[(name)][flags][width].[precision]typecode - (name): 可选,用于选择指定的ke - flags: 可选,可供选择的值有: - +: 指定右对齐输出 右对齐:正数前加正号,负数前加负号;
- -: 指定左对齐输出
左对齐:正数前无符号,负数前加负号;
- 空格 ,
- 右对齐;正数前加空格,负数前加负号
- 右对齐;正数前无符号,负数前加负号;用0填充空白处
- width: 可选,占有宽度
- . precision: 可选,小数点后保留的位数
- typecode: 必选
- s,获取传入对象的__str__方法的返回值,并将其格式化到指定位置,字符串(采用str()显示)
- r,获取传入对象的__repr__方法的返回值,并将其格式化到指定位置,字符串(采用repr()显示)
- c,单个字符
- 整数:将数字转换成其unicode对应的值,10进制范围为 0 <= i <= 1114111(py27则只支持0-255);
- 字符:将字符添加到指定位置
- b, 二进制整数
- o,八进制整数
- 将整数转换成八进制表示,并将其格式化到指定位置
- x,十六进制整数
- 将整数转换成十六进制表示,并将其格式化到指定位置
- d,十进制整数
- 将整数、浮点数转换成 十 进制表示,并将其格式化到指定位置
- e,将整数、浮点数转换成科学计数法,并将其格式化到指定位置(小写e)
- E,将整数、浮点数转换成科学计数法,并将其格式化到指定位置(大写E)
- f, 将整数、浮点数转换成浮点数表示,并将其格式化到指定位置(默认保留小数点后6位)
- F,同上
- g,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置 (如果是科学计数则是e;)
- G,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置 (如果是科学计数则是E;)
- %,当字符串中存在格式化标志时,需要用 %%表示一个百分号
#字符串格式化 #%d 此处应该放入一个整数 %s 此处应该放入一个字符串 s = "I love %s" print(s) print("I love %s" % "china") print(s%"china") s = "I am %d years old" print(s) print(s%18) s = "I am %s,I am %d yera old" print(s) print(s%("shuai ge",18)) #如果出现多个占位符,则相应的内容需要用括号括起来。有几个占位符就应该用几个实际的内容代替,或者不要 #Let‘s go #Let‘s go #I love %s #I love chinaI love china #I am %d years old #I am 18 years old #I am %s,I am %d yera old #I am shuai ge,I am 18 yera old
format函数格式化字符串
- 直接用format 函数进行格式化
- 使用:以大括号{}和冒号: 代替%。
- :[[fill]align][sign][#][0][width][,][.precision][type]
- 匹配操作:
- 通过位置匹配
#通过索引的方式进行匹配 s = "{0},{1}".format("first","second") print(s) s = "{1},{0}".format("first","second") print(s) #结果 #first,second #second,first
- 通过名称匹配
#名称一一对应,也可以使用字典 s = "{0},{name}".format("first",name="jack") print(s) #结果 #first,jack
- 通过下标匹配
list1=[1,2,3] s = "{0[0]},{0[1]}".format(list1) print(s) #结果 #1,2
- 其他
age = 18 name = "xiaoming" s = "{name} {age} years old".format(**locals()) print(s) #结果 #xiaoming 18 years old
- 格式规约:使用(:)引入的,其后可以跟随可选的字符对。
/* - fill 【可选】空白处填充的字符 - align 【可选】对齐方式(需配合width使用) - <,内容左对齐 - >,内容右对齐(默认) - =,内容右对齐,将符号放置在填充字符的左侧,且只对数字类型有效。 即使:符号+填充物+数字 - ^,内容居中 */
s = "left],{:<15},[right".format(789456) print(s) s = "left],{:>15},[right".format(789456) print(s) s = "left],{:^15},[right".format(789456) print(s) #填充 s = "left],{:.<15},[right".format("789456") print(s) s = "left],{:*>15},[right".format("789456") print(s) s = "left],{:/^15},[right".format("789456") print(s) #是否字符串都能够使用 #结果 #left],789456 ,[right #left], 789456,[right #left], 789456 ,[right #left],789456.........,[right #left],*********789456,[righ
s = "left],{0:0=15},[right".format(789456) print(s) s = "left],{:0=15},[right".format(-789456) print(s) s = "left],{0:015},[right".format(789456) print(s) s = "left],{0:015},[right".format(-789456) print(s) #结果 #left],000000000789456,[right #left],-00000000789456,[right #left],000000000789456,[right #left],-00000000789456,[right
/* - sign 【可选】有无符号数字 - +,正号加正,负号加负; - -,正号不变,负号加负; - 空格 ,正号空格,负号加负 - # 【可选】对于二进制、八进制、十六进制,如果加上#,会显示 0b/0o/0x,否则不显示 - , 【可选】为数字添加分隔符,如:1,000,000 - width 【可选】格式化位所占宽度 - .precision 【可选】小数位保留精度 - type 【可选】格式化类型 - 特例 %,显示百分比(默认显示小数点后6位) */
以上是关于01-Python的基础知识4的主要内容,如果未能解决你的问题,请参考以下文章