一、字符串的定义方式
定义:字符串或串(String)是由数字、字母、下划线组成的一串字符。一般记为 s=“a1a2···an”(n>=0)。它是编程语言中表示文本的数据类型。在程序设计中,字符串(string)为符号或数值的一个连续序列,如符号串(一串字符)或二进制数字串(一串二进制数字)。
方式:
a = 'westos' 单引号引用
b = "westos" 双引号引用
c = 'what\'s up' 转译(what's up)反斜杠为转译
d = """ 多行引用起始
用户管理体系
1.添加用户 多行引用
2.删除用户
3.显示用户
""" 多行以及用结束
#打印输出
print(a)
print(b)
print(c)
print(d)
print(type(d)) 查看类型
执行结果如下
westos
westos
what's up
用户管理体系
1.添加用户
2.删除用户
3.显示用户
<class 'str'> str为字符串类型
二、字符串的特性
1.索引
s = 'hello' 定义字符串
print(s[0]) 引用打印变量的第一个字符元素
print(s[1]) 引用打印变量的第2个字符元素
print(s[2]) 引用打印变量的第3个字符元素
#打印结果
h
e
l
2.切片
s = 'hello' 定义字符串 (1)
print(s[0:3]) 打印到第三个元素 (2)
print(s[0:4:2]) s[start:end:step] start开始,end-1结束,从0开始打印前4个,步长为2 (3)
print(s[:]) 切割打印所有 (4)
print(s[:3]) 打印到第三个 (5)
print(s[1:]) 从第一个开始打印 (6)
print(s[::-1]) 逆向打印 (7)
print(s[-1]) 只打印最后一个(8)
print(s[:-1]) 不打印最后一个即除了最后一个其余都打印(9)
#打印结果
2 hel
3 hl
4 hello
5 hel
6 ello
7 olleh
8 o
9 hell
3.重复
s = 'hello'
print(s * 2) 打印2次
print(s * 3)
打印结果
hellohello
hellohellohello
4.连接
s = 'hello'
print(s + 'word')
print('hello' + 'westos') 连接无空格
print('hello' + ' westos') 连接有空格
打印结果
helloword
hellowestos
hello westos
5.成员操作符号(检索)
s = 'hello'
print( 'h' in s) 判定h是否存在于变量s的字符串中
print('w' in s) 判定w是否存在于变量s的字符串中
True 存在为真打印true
False 不存在为假打印False
应用练习
回文”是指正读反读都能读通的句子
1.示例 1:
输入: 121
输出: true
示例 2:
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不
是一个回文数。
示例 3:
输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。
Num = input('Num: ')
if Num == Num[::-1]:
print('True-是回文数')
else:
print('False-不是回文数')
打印结果
Num: 123
False-不是回文数
Num: 323
True-是回文数
6.字符串的判定
#判断是不是数字
print('1456'.isdigit()) 是 Ture
print('12adc'.isdigit()) 不是 false
#判断是不是标题
print('Hello'.istitle()) 是标题首字母大写
print('hello'.istitle()) 不是
#判断是不是大小写字母
print('hello'.islower())
print('HELLO'.isupper())
#判断是不是字母
print('abse'.isalpha())
print('123'.isalpha())
#大小写互相转换
print('HELLO'.lower())
print('hello'.upper())
执行结果
True
False
True
False
True
True
True
False
hello
HELLO
7.判断文件名称的结尾
filename = 'westos.yml'
if filename.endswith('.yml'):
print('是以.yml结尾的文件')
else:
print('不是')
# 打印结果
是以.yml结尾的文件
8.判断文件名称的开头
url1 = 'file:///mnt' 自定义三个开头
url2 ='ftp://172.25.254.11/pub'
url3 = 'http://172.25.254.11/index.html'
if url3.startswith('http://'): 指定判断函数
print('ok')
else:
print('failed')
#打印结果
ok
练习题
变量名是否合法:
1.变量名可以由字母,数字或者下划线组成
2.变量名只能以字母或者下划线开头
列如 s = ‘hello@’ 是错误的命名变量里面不应还有特殊字符
思路
1.判断变量名的第一个元素是否为字母或者下划线 s[0],不是报错退出,
2.如果第一个元素符合条件,继续判断除了第一个元素之外的其他元素s[1:]是否为字母或者下划线或数字
注意 isalnum() 函数:检测字符串是否由字母和数字组成。
while True: 一直循环判断
s = input('请输入变量名: ') 定义变量
if s == 'exit': 输入exit退出循环
print('退出')
break
elif s[0].isalpha() or s[0] == '_': 判断(elif)第一个元素是否为字母或者下换线符合一个即可 是进入下个判断 不是输出变量不合法
for i in s[1:]: 除了第一个元素外把其它元素赋值给i
if not(i.isalnum() or i == '_)': (判定i是否由字符串数字或者为下划线组成为)not检测i若不是由字符串数字下划线组成 成立下一步
print('%s变量名不合法' %s) 判定不合法 退出循环
break
else: 如果不成立则为真是合法的
print('%s变量名合法' %s)
else: 以上条件都不成立即为不合法
print('变量名不合法')
打印结果
请输入变量名: 48899qer
变量名不合法 不能数字开头
请输入变量名: a123
a123变量名合法
请输入变量名: _123
_123变量名合法
请输入变量名: hello%
hello%变量名不合法 不能含有特殊字符
请输入变量名: exit
退出