Python基础学习04--字符串

注释

  • 单行注释------>以井号(#)开头,可以单独行,也可以在某行代码后边
  • 多行注释/块注释------>行代码或者内容,以三个连续单引号或双引号开始和结束,中间任何内容都忽略
# 我写了这么多,会不会打印出来
print('第1个:','Hello, World!')

print('第2个:',"Hello, World!")  #打印出Hello, World!

'''
身是菩提树
心如明镜台
时时勤拂拭
勿使惹尘埃
'''
print('第3个:',"Hello, World!")

"""
菩提本无树
明镜亦非台
本来无一物
何处惹尘埃
"""
print('第4个:',"Hello, World!")

输出结果如下:

第1个: Hello, World!
第2个: Hello, World!
第3个: Hello, World!
第4个: Hello, World!

pycharm中注释的快捷应用

pycharm中选中单行或多行需要注释的代码,键盘点击“Ctrl + /”,则可注释掉选中内容

选中注释的内容,再次点击“Ctrl + /”,则可取消注释

 

字符串

目前所认知的字符串就是引号内的一切东西,字符串也可叫文本

字符串表示方法:

  • 单引号------>' '
  • 双引号------>" "
  • 三引号------>''' ''' 或 """ """
str1= '这是个字符串'    # 单引号
 
str2 = "这也是个字符串"  # 双引号
 
str3 = '''
    
这是个可以
    换行的字符串
    '''         # 三引号 print('str1 = ',str1) print('str2 = ',str2) print('str3 = ',str3)

输出结果如下:

str1 =  这是个字符串
str2 =  这也是个字符串
str3 =  这是个可以
        换行的字符串

 转义字符

  • 用一个特殊的方法表示出一系列不方便写出的内容,比如回车键,换行键,退格键
  • 借助反斜杠字符,一旦字符串中出现反斜杠,则反斜杠后面一个或者几个字符已经不是原来的意思了,而是进行了转义
  • 在字符串中,一旦出现反斜杠就要加倍小心,可能由转义字符出现
# 示例:Let's Go!
# 由于示例中存在了单引号('),如果此时字符串仍用''来表示

str4 = 'Let's Go!'
print('str4 = ',str4)

# 输出结果:
# SyntaxError: invalid syntax   ---- (语法错误)

# 报错的原因就是,str4认为储存的变量为'Let',而后面的s Go!'是python无法识别的

解决以上的问题,可以用到嵌套引号或者转义字符

# 示例:Let's Go!

# 使用嵌套引号
str5 = "Let's Go!"
print('str5 = ',str5)

# 使用转义符
str6 = 'Let\'s Go!'
print('str6 = ',str6)

输出结果为:

str5 =  Let's Go!
str6 =  Let's Go!

其他一些常用的转义字符

# 输出 C:\now
# 由于存在反斜杠(\),因此n已不是原来的意思,\n在python中是换行的意思,因此该处需要进行再次转义,使 \ 失去转义的作用

str7 = 'C:\\now'
print('str7 = ',str7)

# 考虑到,如果某一路径过长例如:C:\Program Files (x86)\VMware\VMware VIX
# 如果都进行转义,会非常麻烦们,这里有个更好的方法:

# 在字符串前加 r
str8 = r'C:\Program Files (x86)\VMware\VMware VIX'
print('str8 = ',str8)

# 注:字符串不能以“\”结尾

以上输出结果如下:

str7 =  C:\now
str8 =  C:\Program Files (x86)\VMware\VMware VIX

 字符串拼接

# 第一种:
st1 = 'my name is: '
st2 = 'wilson'
str9 = st1 + st2
print('str9 = ',str9)

# 第二种:
str10 =  'my name is: '    'wilson'
print('str10 = ',str10)

# 字符串的乘法
str11 = 'wow ' * 3
print('str11 = ',str11)

以上的输出结果如下:

str9 =  my name is: wilson
str10 =  my name is: wilson
str11 =  wow wow wow 

字符串的squence(序列)操作

每个字符串都存在下标,以PYTHON为例,下标标注如下图,;每个字符串可以用正下标表示(0---(n-1)),也可以用负下标表示(-n----(-1))。

字符串截取的位数是从0开始,而不是1!截取字符串的符号为[]。这个操作符如果只有一个下标参数,那么我们将得到一个字符;如果参数是2个,中间以:隔开,将返回一段字符串;该操作称之为slice/切片操作!

如,str[start:end],我们将得到的是从下标start开始,到小标end结束,且不包含end部分

>>> Str = 'PYTHON'
>>> Str[0]
'P'
>>> Str[6]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: string index out of range      # 下标越界  
>>> Str[0:2]
'PY'
>>> Str[2:4]
'TH'
>>> Str[-1]
'N'
>>> Str[-6:-1]
'PYTHO'
>>> 'PY' in Str
True
>>> 'a' in Str
False
>>> 'a' not in Str
True

字符串的格式化

  • 把字符串按照一定格式打印或者填充
  • 格式化由两种方法
    1. 百分号(%)
    2. format函数

百分号(%)格式化

  • 在字符串中,利用%表示一个特殊的含义,表示对字符进行格式化
  • %d: 此处应该放入一个整数
  • %s: 表示此处应该放入一个字符串
name = 'wilson'
age = 18
str12 = 'my name is %s'
# 下面打印,会直接将%s作为字符串的一部分打印出来
print('str12-直接打印:',str12)

# 这个就会打印完整,即将%wilson,填充到%s部分
print('str12-格式化打印:',str12%'wilson')       # % 后面直接加字符串

str13 = "I'm %d years old"
print('str13-直接打印:',str13)
print('str13-格式化打印:',str13%18)             # % 后面直接加数字

str14 = "I am %s, I am %d years old"
print('str14-直接打印:',str14)
# 如果字符串中由占位符,则有几个占位符必须用几个实际内容代替,或者一个也不要
# print(s%"Wilson") # 错误表示
# 如果出现多个占位符,则相应内容需要用括号括起来
print('str14-格式化打印:',str14%(name, age))     # %后面加变量

 

输出结果如下:

str12-直接打印: my name is %s
str12-格式化打印: my name is wilson
str13-直接打印: I'm %d years old
str13-格式化打印: I'm 18 years old
str14-直接打印: I am %s, I am %d years old
str14-格式化打印: I am Wilson, I am 18 years old

format函数格式化

  • 直接用format函数进行格式化
  • 在使用上,以{}和:代替%号,后面用format带参数完成
name = 'wilson'
age = 18

str15 = "I am {}".format('wilson')
print('str15 = ',str15)

str16 = "I am {0} and {1} years old,Please call me {0}".format(name, age)
print('str16 = ',str16)

str17 = f"I am {name} and {age} years old,Please call me {name}"
print('str17 = ',str17)

输出结果如下:

str15 =  I am wilson
str16 =  I am wilson and 18 years old,Please call me wilson
str17 =  I am wilson and 18 years old,Please call me wilson

 字符串的常用方法

1、count()  

    计算字符串中包含的多少个指定的子字符串

str18 = 'Python is 666'
print('str18 :',str18)

s1 = str18.count('6')
print('str18中包含了',s1,'个6')
str18 : Python is 666
str18中包含了 3 个6

2、endswith()  

    检查字符串是否以指定的字符串结尾,如果是,返回True;否则返回False

3、startswith()   

    检查字符串是否以指定的字符串开头,如果是,返回True;否则返回False

str18 = 'Python is 666'
print('str18 :',str18)

s2 = str18.endswith('6')
print("str18以'6'结尾",s2)

s3 = str18.startswith('P')
print("str18以'P'开头",s3)
str18 : Python is 666

str18以'6'结尾 True
str18以'P'开头 True

4、find()

    返回指定的子字符串在在字符串中出现的位置

5、index()

    返回指定的子字符串在在字符串中出现的位置,如果指定字符不存在,则报错!

    find()与index的区别,这里不做详解,感兴趣的参考:https://blog.csdn.net/ztf312/article/details/47657963  

str18 = 'Python is 666'
print('str18 :',str18)

s4 = str18.find('is')
print('str18中,is的索引位置为',s4)
s5
= str18.index('is') print('str18中,is的索引位置为',s5)
str18 : Python is 666

str18中,is的索引位置为 7
str18中,is的索引位置为 7

6、isalpha()

    检查字符串中是否都是字母,如果是,返回True;只要有一个不是字母,则返回False!

7、isdigit()

    检查字符串中是否都是数字,如果是,返回True;只要有一个不是数字,则返回False!

str18 = 'Python is 666'
print('str18 :',str18)

s6 = str18.isalpha()
print('str18中都是字母:',s6)

s7 = str18.isdigit()
print('str18中都是数字:',s7)
str18 : Python is 666

str18中都是字母: False
str18中都是数字: False

8、join()

    将序列类型的参数的元素字符串合并到一个字符串,str.join()中str作为分隔符

l1 = ['python','is','666']
print('l1 :',l1)

s8 = ';'.join(l1)
print("';'分隔合并后的字符串:",s8)
print('s8的数据类型为:',type(s8))
l1 : ['python', 'is', '666']

';'分隔合并后的字符串: python;is;666
s8的数据类型为: <class 'str'>

9、split()

    将字符串分割为几个子字符串;参数为分隔符。分割出来的子字符串,存放在一个list对象里!

str18 = 'Python is 666'
print('str18 :',str18)

s9 = str18.split(' ')       # 此处的分隔符为空格

print("以' '分割后的结果:",s9)
print('s9的数据类型为:',type(s9))
str18 : Python is 666' '分割后的结果: ['Python', 'is', '666']
s9的数据类型为: <class 'list'>

10、lower()

    将字符串中的大写字母全部转为小写字母

11、upper()

    将字符串中的小写字母全部转为大写字母

str18 = 'Python is 666'
print('str18 :',str18)

s10 = str18.lower()
print('s10:',s10)

s11 = str18.upper()
print('s11:',s11)
str18 : Python is 666

s10: python is 666
s11: PYTHON IS 666

12、strip()

    将字符串前置空格和后置空格删除

13、lstrip()

    将字符串前置空格删除

 14、rstrip() 

    将字符串后置空格删除

str19 = '  Python is 666   '
print('str19 : ','|'+str19+'|')

s12 = str19.strip()         # 删除前后空格
s13 = str19.lstrip()        # 删除前空格
s14 = str19.rstrip()        # 删除后空格

print(' s12  : ','|'+s12+'|')
print(' s13  : ','|'+s13+'|')
print(' s14  : ','|'+s14+'|')
str19 :  |  Python is 666   |

s12 : |Python is 666| s13 : |Python is 666 | s14 : | Python is 666|

15、replace()

    替换字符串里面指定的子字符串

str18 = 'Python is 666'
print('str18 :',str18)

s15 = str18.replace('666','good!')
print('  s15 : ',s15)
str18 : Python is 666

  s15 :  Python is good!

 

 

 

 

  

 

 

 

 

 

posted @ 2019-02-03 17:29  落晨  阅读(354)  评论(0编辑  收藏  举报