Python基础数据类型详解(二):字符串

(本节主要内容为字符串)

字符串的格式化问题

比如:

# 我叫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) 字符串中的每一个字符

你可能感兴趣的:(Python,python,linux,开发语言)