字符串是一个字符序列,(提醒:序列是Python的一个重要的关键词),其中存放UNICODE字符。Python中的字符串是不可变的(immutable),即对字符串执行操作时,总是产生一个新的字符串而不是修改现有的字符串。
#单引号
A = 'Python'
#引号
B = "Python"
#三引号
C = """Python"""
2. 为什么要这么麻烦?
#单引号不用转义
A = "I'm a Python newcomer"
#引号不用转义
B = 'I have learnt "C" language'
(2)三引号可以让输出的字符串直接跨行
A = "I'm \n\
a newcomer"
如果使用三引号,可以不用使用\n\
B = """I'm a
newcomer"""
#建议
A = ("I'm "
"a newcomer")
#不建议
B = "I'm " + \
"a newcomer"
C = "I'm \
a newcomer"
转义字符 | 含义 |
\newline | 忽略换行 |
\\ | \ |
\' | ' |
\" | " |
\a | ASCII蜂鸣 |
\b | ASCII退格 |
\f | ASCII走纸 |
\r | 回车CR |
\n | 换行LF |
\t | ASCII制表符 |
\v | ASCII垂直指标 |
\ooo | 给定八进制字符 |
\xhh | 给定8位十六进制字符 |
\uhhhhh | 给定16位十六进制字符 |
\Uhhhh hhhh | 给定32位十六进制字符 |
\N{name} | 给定名称的Unicode字符,name是一个标准Unicode名称 |
import unicodedata
title = u"Klüft skräms inför på fédéral électoral große"
B = unicodedata.normalize('NFKD', title).encode('ascii','ignore')
print(B)
(2)字符排序问题
format % values
print('number is %d'%10)
将输出number is 10
其中的%d就是一个转换标识符,表示这里是一个整数,%d被替换成真实值10。
转换标志有:
Flag | Meaning |
---|---|
'#' | 转换标志的起始符 |
'0' | 用0在数的字段宽度内进行填充 |
'-' | 左对齐 (如果给出了上面的0转换和左对齐转换,则忽略0转换 |
' ' | (一个空格)在一个有符号转换中,如果是一个正数,那么在开头加上空格而不是'+' |
'+' | 若数为正数,则在开头添加'+'(忽略空格标志). |
格式字符 | 含义 |
---|---|
dioux | 精度表示最少显示数字位数,如果精度过大则以0填充,否则原样输出 |
ef | 精度表示小数点后的数字位数 |
g | 精度表示最大有效位 |
s | 精度表示最大的字符数 |
The conversion types are:
Conversion | Meaning | Notes |
---|---|---|
'd' | Signed integer decimal. | |
'i' | Signed integer decimal. | |
'o' | Signed octal value. | (1) |
'u' | 已废弃,等同于d | (7) |
'x' | Signed hexadecimal (lowercase). | (2) |
'X' | Signed hexadecimal (uppercase). | (2) |
'e' | Floating point exponential format (lowercase). | (3) |
'E' | Floating point exponential format (uppercase). | (3) |
'f' | Floating point decimal format. | (3) |
'F' | Floating point decimal format. | (3) |
'g' | Floating point format. Uses lowercase exponential format if exponent is less than -4 or not less than precision, decimal format otherwise. | (4) |
'G' | Floating point format. Uses uppercase exponential format if exponent is less than -4 or not less than precision, decimal format otherwise. | (4) |
'c' | Single character (accepts integer or single character string). | |
'r' | String (converts any Python object using repr()). | (5) |
's' | String (converts any Python object using str()). | (5) |
'a' | String (converts any Python object using ascii()). | (5) |
'%' | 输出% |
Notes:
The alternate form causes a leading zero ('0') to be inserted between left-hand padding and the formatting of the number if the leading character of the result is not already a zero.当使用了转换标志0,那么填充0的时候,填充的位置将是0o和数字之间,比如%#08o' % 34的结果是0o000042
The alternate form causes a leading '0x' or '0X' (depending on whether the 'x' or 'X' format was used) to be inserted between left-hand padding and the formatting of the number if the leading character of the result is not already a zero.当使用了转换标志0,那么填充0的时候,填充的位置将是0x和数字之间,比如%#08x' % 34的结果是0x000022。
-
The alternate form causes the result to always contain a decimal point, even if no digits follow it.
The precision determines the number of digits after the decimal point and defaults to 6.精度控制决定了小数点后的位数,默认是6位
-
The alternate form causes the result to always contain a decimal point, and trailing zeroes are not removed as they would otherwise be.
The precision determines the number of significant digits before and after the decimal point and defaults to 6.
If precision is N, the output is truncated to N characters.如果上面指定的精度是N,那么字符串的最大长度是N
- See PEP 237.
Since Python strings have an explicit length, %s conversions do not assume that '\0' is the end of the string.
因为Python的String有显式的长度,所以%s转换不认为'\0'是字符串的结尾
Changed in version 3.1: %f conversions for numbers whose absolute value is over 1e50 are no longer replaced by %g conversions.