Skip to content

Latest commit

 

History

History
159 lines (120 loc) · 5.39 KB

File metadata and controls

159 lines (120 loc) · 5.39 KB

字符串

示例:example/day03

字符串可以使用 单引号 ' 或 双引号 " 三引号 ''' 来创建

str1 = '我是字符串'
str2 = "I am a string"
str3 = '''I am a string too'''

子串获取

前边介绍过可以通过 下标方式: [头下标:尾下标]

#!/usr/bin/python
 
var1 = 'Hello World!'
var2 = "Python"
 
print("var1[0]: ", var1[0])
print("var2[1:5]: ", var2[1:5])

转义字符

字符串运算

函数 描述 实例
+ 字符串连接 >>>a + b
'HelloPython'
* 重复输出字符串 >>>a * 2
'HelloHello'
[] 通过索引获取字符串中字符 >>>a[1]
'e'
[ : ] 截取字符串中的一部分 >>>a[1:4]
'ell'
in 成员运算符 - 如果字符串中包含给定的字符返回 True >>>"H" in a
True
not in 成员运算符 - 如果字符串中不包含给定的字符返回 True >>>"M" not in a
mTrue
r/R 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。
原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。
>>>print r'\n' \n
>>> print R'\n'
% 格式字符串 -

字符串格式化

Python 中,字符串格式化使用与 C 中 sprintf 函数一样的语法。

符号 描述
%c 格式化字符及其ASCII码
%s 格式化字符串
%d 格式化整数
%u 格式化无符号整型
%o 格式化无符号八进制数
%x 格式化无符号十六进制数
%X 格式化无符号十六进制数(大写)
%f 格式化浮点数字,可指定小数点后的精度
%e 用科学计数法格式化浮点数
%E 作用同%e,用科学计数法格式化浮点数
%g %f和%e的简写
%G %f 和 %E 的简写
%p 用十六进制数格式化变量的地址
  • 格式化操作符辅助指令:
符号 描述
* 定义宽度或者小数点精度
- 用做左对齐
+ 在正数前面显示加号( + )
在正数前面显示空格
# 在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X')
0 显示的数字前面填充'0'而不是默认的空格
% '%%'输出一个单一的'%'
(var) 映射变量(字典参数)
m.n. m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

Python2.6 开始,新增了格式化字符串的函数 str.format()
基本语法是通过 {}: 来代替以前的 %

print("{} {}".format("hello", "world"))        # 不设置指定位置,按默认顺序

print("{0} {1}".format("hello", "world"))      # 设置指定位置

print("{1} {0} {1}".format("hello", "world"))  # 设置指定位置

指定参数

print("网站名:{name}, 地址 {url}".format(
    name="xinghe", url="github.com/Gnotes/Python"))
# 通过字典设置参数
site = {"name": "xinghe", "url": "github.com/Gnotes/Python"}
print("网站名:{name}, 地址 {url}".format(**site))
# 通过列表索引设置参数
my_list = ['xinghe', 'github.com/Gnotes/Python']
print("网站名:{0[0]}, 地址 {0[1]}".format(my_list))  # "0" 是必须的

传入对象

class AssignValue(object):
    def __init__(self, value):
        self.value = value


my_value = AssignValue(6)
print('value 为: {0.value}'.format(my_value))  # "0" 是可选的
print('value 为: {.value}'.format(my_value))   # 没有"0"

数字格式化

>>> print("{:.2f}".format(3.1415926));
3.14
数字 格式 输出 描述
3.1415926 {:.2f} 3.14 保留小数点后两位
3.1415926 {:+.2f} +3.14 带符号保留小数点后两位
-1 {:+.2f} -1.00 带符号保留小数点后两位
2.71828 {:.0f} 3 不带小数
5 {:0>2d} 05 数字补零 (填充左边, 宽度为2)
5 {:x<4d} 5xxx 数字补x (填充右边, 宽度为4)
10 {:x<4d} 10xx 数字补x (填充右边, 宽度为4)
1000000 {:,} 1,000,000 以逗号分隔的数字格式
0.25 {:.2%} 25.00% 百分比格式
1000000000 {:.2e} 1.00e+09 指数记法
13 {:10d} 13 右对齐 (默认, 宽度为10)
13 {:<10d} 13 左对齐 (宽度为10)
13 {:^10d} 13 中间对齐 (宽度为10)
11 '{:b}'.format(11)
'{:d}'.format(11)
'{:o}'.format(11)
'{:x}'.format(11)
'{:#x}'.format(11)
'{:#X}'.format(11)
1011
11
13
b
0xb
0XB
进制

^, <, > 分别是居中左对齐右对齐,后面带宽度, : 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。
+ 表示在正数前显示 +,负数前显示 -' '(空格)表示在正数前加空格
bdox 分别是二进制、十进制、八进制、十六进制。

  • 此外我们可以使用大括号 {} 来转义大括号,如下实例
#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
print("{} 对应的位置是 {{0}}".format("runoob"))

# 输出结果

runoob 对应的位置是 {0}

参考