(本节主要内容为字符串)
字符串的格式化问题
比如:
# 我叫xxx,我住在xxx,我今年xx岁,我喜欢xxx(简单交互),先默认:
name = input("请输入你的名字'')
address = input(''请输入你的住址'')
age = int(input(''请输入你的年龄''))
hobby = input(''请输入你的爱好'')
#第一种方法,用%s表示字符串的占位,%d表示整数的占位。(f%表示小数的占位),即是用%s等代替,占位xxx:
s = "我叫%s,我住在%s,我今年%d岁,我喜欢%s''% (name,address,age,hobby)
# 【只有一项可不加括号】
print(s)
#第二种方法,用花括号{}占位:
s1 = "我叫{},我住在{},我今年{}岁,我喜欢{}''.format(name,address,age,hobby)
print(s1)
#第三种方法,用f-string,旧版python所没有的功能:
s2 = f"我叫{name},我住在{adress},我今年{age}岁了" # 记得前面加“f”
print(s2)
—————————————————————————————————————
字符串的索引和切片
索引:按照位置提取元素
s = "我叫周杰伦,你呢"
# 可以采用索引的方式提取一个字符或文字符号
print(s[3]) #结果会是字符串中的第四个字符“杰”字,这是因为程序员都是从0开始数
比如 print(s[0])会是“我”
print(s[-1]) #负号表示倒数,倒数是从倒数第一个字符开始的,没有“-0”
切片:从一个字符串中提取一部分内容
比如:
print(s[3:6])
>>>“杰伦”
#默认是从左边的第四个数字切到第六个,记住,右边那个值是拿不到的,可以理解为数学区间的[4,6),从索引位置进行切片,切到6结束,切片拿不到第二个位置的元素。
语法:s[start:end],从start到end进行切片,但取不到end
如果start或end为0,可以直接写成空字符"",比如:
print(s[0:5]) == print(s[:5])
如果冒号两端均为空白,可以表示从头切到尾。
print(s[:]) == print(s)
切片目前只能从左往右切片,如果是[-3:-1],将会切成[-1:-3],是没有结果的。
可以通过给切片添加·步长来控制切片的方向
print(s[::-1]) # 负号表示从右往左。
语法s[start:end:step]
从start切到end,每step个元素出来一个元素。
step为正,则每step个元素出来那一组是最左,反之则为最右。
(倒数右边界也取不到)
——————————————————————————————————————
字符串的常规操作
字符串的操作一般不会对原字符串产生影响,一般是返回一个新的字符串
1.字符串的大小写转换
1.1字符串首字母大写capitalize()
s = "pathon abc"
s1 = s.capitalize()
print(s1)
>>>Python abc
1.12字符串中单词首字母大写:title()
s2 = s.title()
>>>Python Abc
# 识别:连贯的英文字母
1.2变成小写:lower
1.3把所有字母变成大写:upper(这个重要很多,很多场合都会用到)
如何忽略大小写来进行判断,比如
verify_code = "xAd1"
user_input = input ("请输入验证码"{verify_code})
if verify_code.upper() == user_input.upper():
print("验证码正确")
else:
print("验证码错误")
# 更推荐upper,lower有些欧洲文字识别不了。
____________________________________________________________________
字符串的切割和替换
#strip() 官方含义:去掉字符串左右两端的空白符(空格,\t(缩减),\n(换行符))
实例:s = " 你好,我叫 画叉 "
s1 = s.strip
案例:模拟用户登录
username = input("请输入用户名".strip())
password = input("请输入密码"。strip())
if username = "admin":
if password == "123456"
print("登录成功")
else:
print("登录失败")
替换:replace(old,new)
比如: s = "我叫A''
s1 = s.replace(''A'',''B'')
print(s1)
替换空格
a = ''hello i am a"
a1 = a.replace(" ","")
print(a1)
>>>helloiama
切割:split() #字符串切割,用什么切割就会损失什么
a = "python_java_c_"
lst = a.split("_")
print(lst)
>>>"python","java","c"
总结,字符串三大神器:replace(),split(),strip()
___________________________________________________________________
查找和判断
s = "你好,我叫A"
判断A是否在S中:
1.find
ret = s.find("a")
print(ret)
>>>结果为数字,代表位置,如结果为-1则说明该字符串中没有该字符
2.index 如果结果为error,则无该字符。
3.直接用布尔判断判断
print("a" in s),如果有,结果为True,反之则为False
# in 可做条件判断,not in 判断是否不存在
判断你是不是姓张
name = input("你的名字是什么")
if name.startwith("张”)# startwith()表示字符串首字符
print("你姓张")
else:
print("你不姓张")
____________________________________________________________
判断字符串是否由小数组成
money = input("...")
if money.isdigit():
money = int(money)
print........
#isde是小数
—————————————————————————————————
字符串的循环和遍历
for c in s:
print(c) # 字符串中的每一个字符