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
字符串的格式化
- 把字符串按照一定格式打印或者填充
- 格式化由两种方法
- 百分号(%)
- 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的主要内容,如果未能解决你的问题,请参考以下文章