第一章:基础知识
-
计算机编程就是告诉计算机如何做。
-
除法运算的结果为小数,即浮点数。
>>> 1 / 2 0.5
-
如果想丢弃小数部分,即执行整除运算,可使用双斜杠。
-
向下圆整
>>> 1 // 2 0
-
x % y
等价于x - ((x // y) * y)
-
求余运算也可以用于浮点数。
-
这种运算符甚至可用于负数,但可能不那么好理解。
>>> 10 % 3 1
-
**
是乘方(求幂)运算符>>> 2 ** 3 8
-
乘方运算符的优先级比求负(单目减)高。
-
十六进制数
>>> 0xAF 175
-
八进制数
>>>0o10 8
-
二进制数
0b1011010010
-
Python变量没有默认值
-
在Python中,名称(标识符)只能由字母、数字和下划线(_)构成, 且不能以数字打头。
-
表达式放在程序中不会由任何作用。
-
所有语句的一个根本特征:执行修改操作。
-
值并非存储在变量中,而是存储在变量指向的计算机内存中。多个变量可指向同一个值。
-
相等运算符就是两个等号。
-
在交互式解释器中输入if语句后,需要按两次回车键才能执行它。
-
abs计算绝对值,round将浮点数圆整为与之最接近的整数。
-
整数总是向下圆整,而round圆整到最接近的整数,并在两个整数一样近时圆整到偶数。
-
floor向下圆整。
-
ceil与floor相反,返回大于或等于给定数的最小整数。
-
函数sqrt用于计算平方根
-
可使用变量来引用函数(以及其他大部分Python元素)。执行赋值语句foo = math.sqrt后, 就可使用foo来计算平方根。例如,foo(4)的结果为2.0。
-
nan具有特殊含义,指的是“非数值”(not a number)。
-
Python本身提供了对复数的支持。
-
Python没有专门表示虚数的类型,而将虚数视为实部为零的复数。(说明Python只到复数,没 有到虚数)
-
字符串也是值。
-
换行符的编码\n
-
使用repr时,通常会获得值的合法Python表达式表示。
>>> print(repr("Hello,\nworld!")) 'Hello,\nworld!'
-
使用str能以合理的方式将值转换为用户能够看懂的字符串。
>>> print(str("Hello,\nworld!")) Hello, world!
-
要表示很长的字符串(跨越多行的字符串),可使用三引号(而不是普通引号)。
-
这让解释器能够识别表示字符串开始和结束位置的引号,因此字符串本身可包含单引号和双引 号,无需使用反斜杠进行转义。
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.
-
原始字符串用前缀r表示。
-
原始字符根本不会对反斜杠做特殊处理,而是让字符串包含的每个字符都保持原样。
>>> print(r'Let\'s go!') Let\'s go!
-
原始字符串不能以单个反斜杠结尾。换而言之,原始字符串的最后一个字符不能是反斜杠,除非 你对其进行转义(但进行转义时,用于转义的反斜杠也将是字符串的一部分)。根据前一个示例,这一点应该是显而易见的。如果最后一个字符(位于结束引号前面的那个字符)为反斜杠,且未对其进行转义,Python将无法判断字符串是否到此结束。
-
解决方法
>>> print(r'C:\Program Files\foo\bar' '\\') C:\Program Files\foo\bar\
-
请注意,指定原始字符串时,可使用单引号或双引号将其括起,还可使用三引号将其括起。
-
有一种指定Unicode字符的通用机制:使用16或32位的十六进制字面量(分别加上前缀\u或 \U)或者使用字符的Unicode名称(\N{name})。