python3学习笔记(三):注释和字符串
一、注释
为了让别人能够更容易理解程序,使用注释是非常有效的,即使是自己回头再看旧代码也是一样。
# 打印圆的周长: print(2* pi* r)
在python 中用井号(#)表示注释。井号(#)右边的内容都会忽略。
二、字符串
1、单引号字符串和转义引号
>>> "Hello,world!" 'Hello,world!' >>> 'Hello,world!' 'Hello,world!'
双引号和单引号的输出是一样的,没什么区别。
在特殊情况下,只能用单引号或只能用双引号,如:
>>> '"Hello,world!" she said' '"Hello,world!" she said' >>> "Let's go!" "Let's go!"
可以使用反斜(\)对字符串进行转义
>>> "\"Hello,world!\" she said" '"Hello,world!" she said' >>> "Let\'s go!" "Let's go!"
2、拼接字符串
加号(+)拼接字符串
>>> "Hello, "+"world!" 'Hello, world!' >>> x="Hello, " >>> y="world!" >>> x+y 'Hello, world!'
3、字符串表示,str和repr
前面的例子读者可能注意到,所有通过python打印的字符串还是被引号括起来的。这是因为python打印值的时候会保持该值在python代码中的状态,而不是你希望 用户所看到的状态。如果用print语句,结果就不一样了:
>>> "Hello,world!" 'Hello,world!' >>> print("Hello,world!") Hello,world!
我们在这里讨论的实际上是值被转为字符的两种机制。可以通过以下两个函数来使用这两种机制:
>>> print(str("Hello,world!")) Hello,world! >>> print(repr("Hello,world!")) 'Hello,world!'
str()函数 ,它会把值转换为合理形式的字符串,以便用户可以理解;
repr()函数,它会创建一个字符串,它以合法的python表达式的形式来表示值。
4、长字符串
如果需要写一个非常非常长的字符串,它需要跨多行,那么,可以使用三个引号代替普通引号。
print('''This is a very long string. It continues here. And it's not over yet. "Hello,world!" Still here.''') This is a very long string. It continues here. And it's not over yet. "Hello,world!" Still here.
普通字符串也可以跨行。如果一行之中最后一个字符是反斜线,那么,换行符本身就“转义”了,也就是被忽略了。
>>> print("Hello, \ world!") Hello, world!
这种方法也适用于表达式和语句
>>> 1+2+\ 4+5 12 >>> print \ ("Hello,world!") Hello,world!
5、原始字符串
我们来输出DOS路径:
>>> path="C:\nowhere >>> print(path) C: owhere
这并不是我想要的结果,我想输入的是一个路径,却被换行了。
>>> print('C:\\abc') C:\abc >>> print('C:\\Program Files\\fnord\\foo\\bar\\baz\\frozz\\bozz') C:\Program Files\fnord\foo\bar\baz\frozz\bozz
通反斜线(\)转义解决了路径问题,但如果路径太长就需要很多反斜线,很麻烦。
>>> print(r'C:\Program Files\fnord\fobarbaz\frozz\bozz') C:\Program Files\fnord\fobarbaz\frozz\bozz >>> print(r'Let\'s go!') Let\'s go!
原始字符串以r开头,原始字符串不会把反斜线当作特殊字符。但是最后一个字符不能是反斜线
>>> print(r'C:\Program Files\fnord\fobarbaz\frozz\bozz\') SyntaxError: EOL while scanning string literal
需要用反斜线进行转义
>>> print(r'C:\Program Files\fnord\fobarbaz\frozz\bozz\\') C:\Program Files\fnord\fobarbaz\frozz\bozz\\ >>> print(r'C:\Program Files\fnord\fobarbaz\frozz\bozz'+'\\') C:\Program Files\fnord\fobarbaz\frozz\bozz\