python基础学习-字符串常见操作
程序员文章站
2022-03-28 20:18:07
字符串常见操作 索引 切片 字符串的常见操作 应用 判断是否是小数 ......
字符串常见操作
索引
s = "abcdefg" # 字符串数据,切片后取出的数据都是字符串类型 # 从左至右取值:从0开始 # 从右向左取值:从-1开始 print("s[0]:%s" % s[0]) # a print("s[-1]:%s" % s[-1]) # g
切片
s = "abcdefg" s1 = s[:] # 取全部 s2 = s[::2] # 从左至右取值,步长为2 aceg s3 = s[2::-1] # 从2下标开始向左取值,步长为1 cba s4 = s[-1::-2] # 从-1下标开始向左取值,步长为2 geca s5 = s[2:5] # 从2下表开始取值,到5下表截至,不包含5 cde
字符串的常见操作
# 字符串的常用操作方法 字符串操作不会对原有字符串进行改变 s = "taibai" word = "hello world" print(s.count("i")) # 统计字符串中xx出现次数 返回数据int 2 print(s.upper()) # 字符串整个转换为大写 taibai print(s.lower()) # 字符串整个转换为小写 taibai print(s.capitalize()) # 字符串首字母转换为大写 taibai print(word.capitalize()) # 整个字符串首字母转换为大写(整个字符串看为一个整体)hello world print(s) # 字符串操作不会对原有字符串进行改变 taibai # 应用 验证码不区分大小写(统一转换为大写或小写) user_name = input("请输入用户名:") password = input("请输入密码:") code = "qwer" your_code = input("请输入验证码(不区分大小写):") if your_code.lower() == code.lower(): if user_name == "zhangsan" and password == "1234": print("登录成功") else: print("验证码或密码错误") else: print("验证码错误") # strip 去空(去除左右空格) 包含:\n、\t str1 = " \nabcd31 12 \t" print(str1.strip()) print(len(str1)) # 27 去空后,不影响原有字符串 # lstrip 去除左边空格 print(str1.lstrip()) # rlstrip 去除右边空格 print(len(str1.rstrip())) # 去除右边空格 # join 字符串拼接(用什么把字符串拼接起来) str1 = "abcd" # 如果被拼接元素是字符串,则把字符串拆分成单独元素,再进行拼接 print("+".join(str1)) # a+b+c+d str2 = ["a1", "a2" ,"a3"] # 被拼接元素如果是列表,则列表中元素必须是字符串,如果是数字,则会报错 print(":".join(str2)) # 拼接后:a1:a2:a3 # split 把字符串以某元素分割 分割成多个字符串,放在列表中,不包含分割元素 str1 = "abcdefg" print(str1.split("b")) # 分割后:['a', 'cdefg'] str2 = ":abd:def:efg:fgh" print(str2.split(":", 2)) # 2为分割次数,表示分割两次 分割后:['', 'abd', 'def:efg:fgh'] # count 统计字符串出现次数 str1 = "abcdabcdefabceasd" print(str1.count("abc")) # 3 # format msg = "我叫{},今年{},就读于{}" msg1 = msg.format("张三", 18, "墨尔本大学") print(msg1) # 我叫张三,今年18,就读于墨尔本大学 # 可以直接再字符串后拼接 msg3 = "我叫{},今年{},就读于{}".format("李四", 25, "北京大学") print(msg3) # 我叫李四,今年25,就读于北京大学 # 使用索引的方法,可以减少format后参数的个数,重复参数不用写多次 msg3 = "我叫{0},今年{1},就读于{2},不管我去到哪,我都叫{0}".format("李四", 25, "北京大学") print(msg3) # 我叫李四,今年25,就读于北京大学,不管我去到哪,我都叫李四 # 使用参数名的方法传递,format后参数指定参数值 msg4 = "我叫{name},今年{age},就读于{adu},不管我去到哪,我都叫{name}".format(age=25, adu="北京大学", name="李四") print(msg4) # is系列 判断是否是什么类型 a = "abc" b = "abc123" # isalnum 字符串由字母或数字组成 print(a.isalnum()) # true print(b.isalnum()) # true # isdecimal 字符串只由十进制组成 不包含罗马数字,中文数字,小数 print(a.isdecimal()) # false print(b.isdecimal()) # false # isalpha 字符串只由字母组成 print(a.isalpha()) # true print(b.isalpha()) # false # isdigit 判断是否是整数 不包含罗马数字,中文数字,小数 num1 = "1234" num2 = "1234abc" print(num1.isdigit()) # true print(num2.isdigit()) # false
应用 判断是否是小数
# 应用 判断是否是小数 """ 1、判断小数点个数是否是1 count 2、以小数点分割 判断小数点右边是否是整数 3、判断小数点左边 是整数isdigit 如果是负整数 """ def is_float(s): str1 = str(s) if str1.count(".") == 1: left = str1.split(".")[0] right = str1.split(".")[1] if right.isdigit(): if left.count("-") == 1 and left.startswith("-"): num3 = left.split("-")[-1] if num3.isdigit(): return true elif right.isdigit(): return true else: return false # 调用is_float函数执行 price = input("请输入商品价格:") if is_float(price): print("输入正确:%s" % price) else: print("输入有误:%s" % price)