前言
鉴于目前python相当流行,所以开始自学,在win系统下安装了最新版本的3.2.1,下载了电子书籍《python基础教程》第二版,可惜没找到第三版,于是又安装了2.5版本的python,便于按照书的例子学习,同时也与3.2.1做了一些比较。
第一章
1. python是解释型的语言,电脑可以一句一句执行,而C++是编译型语言,编译连接后才能执行。
2. 一些表达式,3.2.1 和 2.5 有所区别
2.5: 1/2 —> 0, 1/2.0 —> 0.5, 1//2 —> 0,1.0//2.0—> 0.0
若想达到1/2—> 0.5的效果,需要执行from_future_import division语句,或者通过命令行运行Python时,使用命令开关-Qnew。
对于处理较大数时使用10000000L
十六进制:0xAF —> 175
八进制:010 —> 8
3.2: 1/2 —> 0.5, 1//2 —> 0,无长型整数L
八进制:010报错SyntaxError: invalid token
3.
(1)3 ** 2 等价于 pow(3,2)—> 9
(2)屏幕输出:2.5: print "Hello world"
3.2: print("Hello world")
(3)获取用户输入:>>>input("please input a number: ")
raw_input("what's your name ?"),3.2中没有此函数
2.5:
>>> x = input("x: ")
x: 2
>>> y = input("y: ")
y: 3
>>> print x * y
6
3.2:需要进行类型转换,否则报错:can't multiply sequence by non-int of type 'str'
>>> x = input("x: ")
x: 2
>>> y = input("y: ")
y: 3
>>> print(int(x)*int(y))
6
(4)函数and模块
abs(-1) —> 1
round:四舍五入
2.5
>>> round(1.0/2)
1.0
3.2
>>> round(1.0/2)
0
floor:向下取整 ceil:向上取整
>>> import math
>>> math.floor(32.9)
32.0
>>> math.ceil(32.9)
33.0
调用模块math中函数的另一种方法
>>> from math import sqrt
>>> sqrt(9)
3.0
>>> sqrt(-9)
Traceback (most recent call last):
File "<pyshell#15>", line 1, in <module>
sqrt(-9)
ValueError: math domain error
上面求负数平方根报错,使用cmath模块,得负数的平方根为一虚数
>>> import cmath
>>> cmath.sqrt(-9)
3j
#复数相乘
>>> (1+3j)*(9+4j)
(-3+31j)