一、字符串的定义
字符串: 在python中引号包起来的,叫做字符串
1.字符串的定义:1、单引号
2、双引号
3、三引号
注意点:单引号和双引号没有任何区别
三引号可以自由换行
字符串转义:\' : 表示 ’
\" : 表示 "
\n : 表示 换行
\t : 表示 水平制表符
r : 关闭字符串转义
s1 = 'abc' s2 = "258" s3 = """ 98765 4321 """ # 需求:字符串中如果有单引号怎么定义? s4 = "fruit'python" # ---> 可以用双引号括起来 # 需求:字符串中如果有单引号和双引号怎么定义? s5 = """fruit'python"java""" # ---> 可以用三引号括起来 # 当然也可以使用更简便的方法:字符串转义 \ s6 = 'fruit\'python' print(s6) # 运行结果为fruit'python s7 = 'fruit\'python\"java' print(s7) # 运行结果为fruit'python"java # \t 水平制表符 s8 = "java\tc++88\tmysql5\tscript" s9 = "java\tc++222\tmysql\tscript" s10 = "java66\tc++7777\tmysql\tscript333" # 如果加\t\t,间隔会更宽一点,更加显得对齐好看 print(s8) print(s9) print(s10) # 关闭字符串转义,用r # file_path_1 = "C:\Users\Administrator\PycharmProjects\eg01\day_02\demo04_字符串.py" # print(file_path_1) # 报错,打印不出来 file_path_2 = r"C:\Users\Administrator\PycharmProjects\eg01\day_02\demo04_字符串.py" print(file_path_2) # 打印正确---> C:\Users\Administrator\PycharmProjects\eg01\day_02\demo04_字符串.py
二、字符串的拼接
字符串拼接
方式一:直接 加法+ 来进行拼接
方式二:format格式化 变量 = "{}{}{}".format(s1, s2, s3)
# 字符串拼接 # 方式一:+ s1 = "apple" s2 = "orange" s3 = "banana" # fruit_info = s1 + s2 + s3 # print(fruit_info) # 输出结果为:appleorangebanana # 方式二:format fruit_info2 = "{}{}{}".format(s1, s2, s3) print(fruit_info2) # 输出结果为:appleorangebanana
.三、字符串格式化
字符串格式化输出
①:format格式化输出
②:字符串的F表达式
③:%号格式化输出
%s:表示为任意的类型占位
%f:表示为浮点数占位
%d:表示为数值类型占位
# 需求1:编写一个自动生成收据的python程序 # 用户输入姓名、费用、金额就可以输出如下格式的收据:今天收到XXX同学,交来XXX费用,金额XXX,开此收据为凭证 name = input("请输入姓名:") type1 = input("请输入费用类型:") money = input("请输入具体金额:") # 方法1: use_info = "今天收到{}同学,交来{}费用,金额{},开此收据为凭证!".format(name, type1, money) print(use_info) # 方法2: use_info_2 = F"今天收到{name}同学,交来{type1}费用,金额{money},开此收据为凭证!" print(use_info_2) # 方法3: use_info_3 = "今天收到%s同学,交来%s费用,金额%s,开此收据为凭证!" % (name, type1, money) print(use_info_3) # 方法4(不太推荐):当然,也可以使用复杂的传统方法: # use_info_4 = "今天收到" + name + "同学,交来" + type1 + "费用,金额" + money + ",开此收据为凭证!" # print(use_info_4) # 需求2:随机生成的小数,如何转换为指定保留两位小数来显示在字符串中 import random n1 = random.random() print("随机产生的小数为{:.2f}".format(n1)) print("随机产生的小数为: %.2f" % n1)
tips---->这里继续补充以下几点:
1、字符串格式化小数
2、格式字符串的长度
3、格式化百分比
# 1、字符串格式化小数 number = 3.141592654 print("保留两位小数后的数值为{:.2f}".format(number)) print(F"保留两位小数后的数值为{number:.2f}") # 这里的保留,属于四舍五入 # 2、格式字符串的长度 # 比如有的字符串长度,有长有短,这时想让他们有统一的占位长度,怎么来格式化? name1 = "小明111" name2 = "小明22222" name3 = "小明33333333" name4 = "小明4444444444444" print("我的名字叫{:>15},我的兴趣是敲代码,一天不敲浑身难受".format(name1)) print("我的名字叫{:>15},我的兴趣是敲代码,一天不敲浑身难受".format(name2)) print("我的名字叫{:>15},我的兴趣是敲代码,一天不敲浑身难受".format(name3)) print("我的名字叫{:>15},我的兴趣是敲代码,一天不敲浑身难受".format(name4)) # 这里的:>15 表示,向右对齐、且字符串长度最多15位 # 继续补充:<15 表示向左对齐 # : ^15表示中间对齐 # 3、格式化百分比 # 说明: {:.2%}表示百分比后面的小数为2位 a = 0.38 print('百分比显示的数据为: {:.0%}'.format(a)) # 运行结果为 38% print('百分比显示的数据为: {:.1%}'.format(a)) # 运行结果为 38.0% print('百分比显示的数据为: {:.2%}'.format(a)) # 运行结果为 38.00% # 当然,你也可以这样写 print(f'百分比显示的数据为: {a:.2%}') # 运行结果为 38.00%
四、字符串的常用方法
1、 find: 查找字符串,返回的是字符串的下标索引,如果找不到则返回-1
注意:如果存在多个,那就默认返回第一个的下标
2、count: 计算字符串的个数
3、replace: 替换字符串的内容
4、split: 分割字符串
5、upper: 把小写的字母转换为大写字母
6、lower: 把大写字母转换为小写字母
7、strip: 去除字符串首尾处的空格
8、join: 字符串拼接
# 1、find:查找字符串,返回的是字符串的下标索引,如果找不到则返回-1, # 注意:如果存在多个,那就默认返回第一个的下标 s1 = "python java language" res = s1.find('j') print(res) # 运行结果为 7 这里的7指的是下标为 7 开头是从0开始数 # 注意如果存在多个,那就默认返回第一个的下标 s = "new huge hello nice " # 这个字符串,n字符出现了2次,h出现了2次 print(s.find('n')) # 运行结果为 0 print(s.find('h')) # 运行结果为 4 # 2、count:计算字符串的个数 s2 = "abcmmmhhdddtttttttmmmmmhh" print(s2.count('m')) # 输出为 8 因为一共有8个字母 print(s2.count('hh')) # 输出为 2 因为一共有2个hh 有的可能会有疑惑,不是有4个h吗,这里找的是hh,连在一起的 print(s2.count('t')) # 输出为 7 因为有7个t print(s2.count('tt')) # 输出为 3 因为只有3个tt,另外多出来的一个t,不算, # 3、replace:替换字符串的内容 # 注意:①如果 将要被替换的字符串不是原字符串,则还是无法替换 # ②当字符串中有多个相同时,均可被替换 # ③当字符串中有多个相同时,可通过第3个参数,指定替换的次数 s3 = "color yellow red blue green" print(s3) # 打印结果为 color yellow red blue green print(s3.replace('red', 'white')) # 打印结果为 color yellow white blue green white替换了red ,后面的替换掉前面的 print(s3.replace('red123', 'white')) # 打印输出 color yellow red blue green s3_1 = "java python php c++ java html java" print(s3_1.replace('java', 'css', 2)) # 打印输出 css python php c++ css html java 解释:css把前两个java替换了 print(s3_1.replace('java', 'css', 4)) # 打印输出 css python php c++ css html css 只有3个,但是参数为4,也会全部替换 # 4、split:分割字符串 s4 = "data:123456789,url:www.baidu.com,json:skfbdkliger" r = s4.split(',') # 以,分隔开 print(r) # 打印结果为一个列表:['data:123456789', 'url:www.baidu.com', 'json:skfbdkliger'] # 5、upper:把小写的字母转换为大写字母 method = 'post' print("POST" == method.upper()) # True 工作中常用 print("POST" == method) # False # 6、lower:把大写字母转换为小写字母 s6 = "APPLE" print(s6.lower()) # 输出为apple # 7、strip:去除字符串首尾处的空格 s7 = " java:best " print(s7.strip()) # 打印结果:java:best 首尾均没有了空格 # 8、join:字符串拼接, a = 'hello' b = 'python' c = '!' res8 = "".join([a, b, c]) print(res8) # 打印结果为: hellopython!