python 作为一门解释型的编程语言, 和 c/c++ 等其他语言都或多或少有相通的地方, 所以有语言基础的话, 学起来还是方便一些. 所以我的笔记对于相对简单的概念可能会选择放过, 但对自己记录的东西我会力求完备. 学习所用的系统为 Ubuntu 的 Linux.
数和表达式
除法运算有两种, 单斜杠和双斜杠.
a/b 运算结果是浮点数.
- >>>1/2
- 0
- >>>1/1
- 1.0
- a//b 执行整除运算, 舍弃小数部分.
- >>>1//2
- 0
- >>>1//1
- 1
- >>>5.0//2.4
- 2.0
python 与其他语言在除法运算和求模运算中有一个重要的区别, 其整除运算无论正负都是向下圆整结果. 因此在结果为负数的情况下, 圆整后将离 0 更远.
- >>>10//3
- 3
- >>>-10//3
- -4
- >>>10//-3
- -4
- >>>-10//-3
- 3
求模运算与除法运算类似, 也是向下圆整的机制.
- >>>10%3
- 3
- >>>-10%3
- -2
- >>>10%-3
- 2
- >>>-10%-3
- -1
不同于 c/c++,Python 中是没有自增自减操作符的, 例如 i++,j--. 但 Python 是有 += 和 -= 的.
变量
与其他一些语言不同, Python 变量是没有默认值的, 因此使用变量前必须进行赋值.
Python 中所有变量都是可变的, 没有特定的 "常量" 类型, 所以通过约定将变量名的所有字母大写来表示 "常量", 但其本质上依然是变量, 可改变, 所以在实际编程时需要多加注意才是.
cmath 和复数
Python 标准库提供了 cmath 来支持复数计算.
- >>>import cmath
- >>>cmath.sqrt(-1)
- 1j
Python 本身默认提供了对复数的支持. 在表示复数时, 只能用 j, 且 j 前必须有数字, 即使是 1, 也需要标出.
- >>>(1+3j)*(9+4j)
- (-3+31j)
单引号, 双引号, 三引号以及字符串转义
单引号与双引号 其实是没有差别的. 同时支持单引号和双引号一个方便的用处是, 包含单引号的字符串可以用双引号括起或是包含双引号的字符串可以用单引号括起.
更特殊的就是字符串中既有单引号, 又有双引号的情况, 这是就需要用到三引号 (既可以是三个单引号也可以是三个双引号). 三引号支持跨越多行的字符串.
>>> print('''This is a long string.It continues here.
- ... And it's not over yet."hello,world"... Still here''')
- This is a long string.It continues here.
- And it's not over yet."hello,world"
- Still here
- >>>
原始字符串
原始字符串不以特殊方式处理反斜杠, 用前缀 r 表示.
- >>>print(r'C:\nowhere')
- C:\nowhere
原始字符虽然在某些情况下很有用 (如正则表达式). 但这也意味着用于执行转义的反斜杠也将包含在最终的字符串中.
另外, 原始字符串不能以单个反斜杠结尾. 但可以通过其他方法解决, 如将反斜杠分开打印.
- >>> print(r"This is illegal!\")
- File "<stdin>", line 1
- print(r"This is illegal!\")
- ^
- SyntaxError: EOL while scanning string literal
- >>> print(r'C:\Program files\foo\bar''\\')
- C:\Program files\foo\bar\
来源: http://www.bubuko.com/infodetail-2554062.html