python 内置数据结构字符串

一. 字符串的创建和赋值

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'

五 练习

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值