python字符串

一、字符串的定义

字符串: 在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

  python字符串_第1张图片

二、字符串的拼接

字符串拼接
  方式一:直接 加法+ 来进行拼接
  方式二: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!

 

你可能感兴趣的:(python字符串)