Python基础学习04

Posted 落晨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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!

 

 

 

 

  

 

 

 

 

 

以上是关于Python基础学习04的主要内容,如果未能解决你的问题,请参考以下文章

python基础学习04

python 机器学习有用的代码片段

《Python学习之路 -- Python基础之切片》

学习笔记:python3,代码片段(2017)

Python 函数声明和调用

[vscode]--HTML代码片段(基础版,reactvuejquery)