前言
鉴于目前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)