一. 字符串的创建和赋值
1 字符串或串(String)是由数字、字母、下划线组成的一串字符。Python 里面最常见的类型。 可以简单地通过在引号间(单引号,双引号和三引号)包含字符的方式创建它。
第一种方式:
str1 = ‘our company is westos’
第二种方式:
str2 = “our company is westos”
2 符号转义
一个反斜线加一个单一字符可以表示一个特殊字符,通常是不可打印的字符
3 字符串是不可变的,只能通过赋一个空字符串或者使用 del 语句来清空或者删除一个字符串,但是没有必要显式的删除字符串。定义这个字符串的代码结束时会自动释放这些字符串。
二. 字符串的基本特性
1 连接操作符: 从原有字符串获得一个新的字符串
注意:连接的也要为字符串不能是数字之类的。
重复操作符: 创建一个包含了原有字符串的多个拷贝的新串
1. 连接操作符和重复操作符
name = 'westos'
print('hello ' + name)
# 1元 + 1分 = 1元 + 0.01元 = 1.01元
print('hello' + str(1))
print("*" * 30 + '学生管理系统' + '*' * 30)
2 索引(s[i] ): 获取特定偏移的元素,默认初始位置为0。
索引的分类: 正向索引, 反向索引,对于反向索引,最后一位为-1。
s = 'WESTOS'
print(s[0]) # 'W'
print(s[3]) # 'T'
print(s[-3]) # 'T'
3 切片S[i:j]提取对应的部分作为一个序列:
如果没有给出切片的边界,切片的下边界默认为0,上边界为字符串的长度;扩展的切片S[i:j:k],其中i,j含义同上,k为递增步长;
s[:]获取从偏移量为0到末尾之间的元素,是实现有效拷贝的一种方法;
s[::-1]是实现字符串反转的一种方法;
"""
回顾:
range(3):[0, 1, 2]
range(1, 4): [1, 2, 3]
range(1, 6, 2): [1, 3, 5]
切片: 切除一部分的内容
s[start:end:step]
s[:end]:
s[start:]:
总结:
s[:n]: 拿出前n个元素
s[n:]: 除了前n个元素, 其他元素保留
s[:]:从头开始访问一直到字符串结束的位置
s[::-1]: 倒序输出
"""
s = 'hello westos'
print(s[1:3]) # 'el'
print(s[:3]) # 'hel'
print(s[:5]) # 拿出字符串的前5个字符
print(s[1:]) # 'ello westos'
print(s[2:]) # 'llo westos'
print(s[:]) # 拷贝字符串
print(s[::-1])
三 字符串内建方法
四 扩展string模块
1 随机生成6位验证码: 两个数字加4个字母的组合
import random random模块虽然也可以随机生成数字,但较为繁琐
random.choice(“0123456789”)
‘6’random.choice(“0123456789”) + random.choice(‘0123456789’)
‘84’random.choice(“0123456789”) + random.choice(‘0123456789’) + random.choice(‘abcdef’)
‘16b’
2
>>> import string
>>> string.digits ##string 模块中有随机生成数字和字母的模块
'0123456789'
>>> string.ascii_letters
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> random.sample(string.ascii_letters, 4)
['z', 'N', 'u', 't']
>>> random.sample(string.ascii_letters, 4)
['c', 'q', 'X', 'f']
>>> random.sample(string.ascii_letters, 4)
['D', 'b', 'e', 'A']
>>> "".join(random.sample(string.ascii_letters, 4))
'aMUF'
>>> "".join(random.sample(string.digits, 2)) + "".join(random.sample(string.ascii_letters, 4))
'95sGFj'
>>> "".join(random.sample(string.digits, 2)) + "".join(random.sample(string.ascii_letters, 4))
'17TlIb'
>>> "".join(random.sample(string.digits, 2)) + "".join(random.sample(string.ascii_letters, 4))
'50uvqM'
>>> "".join(random.sample(string.digits, 2)) + "".join(random.sample(string.ascii_letters, 4))
'09MCDW'
>>> "".join(random.sample(string.digits, 2)) + "".join(random.sample(string.ascii_letters, 4))
'83Wntf'
五 练习