最近在自学python,看的是《Python基础教程》,准备把所学、所想以及所得都记录下来。因为有python2和python3两个版本,并且差别还是蛮大的,我安装的是python3,而《Python基础教程》这本书又是以python2为蓝本讲解的。学习python3,所以自然得记些笔记了。
(PS:编辑器自动在代码中加东西,直接复制可能会出错。可以点击代码块上方的第一个按钮view plain查看纯文本)
1.各种运算
python3的运算很简单,主要与python2不同的就是除法了:
1 + 2 #加法
1 - 2 #减法
1 * 2 #乘法
1 / 2 #自然除法,结果为0.5
1 // 2 #整除,结果为0
2 ** 3 #幂运算,结果为8
-1 ** 2 #幂运算,结果为-1
(-1) ** 2 #幂运算,结果为1
2 % 3 #取余,结果为1
0.75 % 0.5 #取余,结果为0.25
#python可进行大数运算
1234567890100101010+123123123123123123*123129312903712312312
2.进制
八进制和十六进制开头是数字0,十六进制第二个为小写字母x,八进制为小写字母o:
#进制
0xAF #十六进制,十进制值为175
0o10 #八进制,十进制值为8
3.输入输出
python3没有raw_input了,全部使用input()函数进行输入,输出使用print()函数,与python2不同,python3需要括号,如果是字符串需要加单引号或者双引号:
#输入输出
print("hello, world!")
name = input("what's your name? ")
print("hello! " + name)
age = int(input("how old are you? ")) #int()函数将字符转换为数字
print("oh, you are" + str(age)) #str()函数能将变量内容转换为字符串
4.模块
python可以导入模块,以增强其功能:
#模块
import math
math.floor(3.9) #向下取整,结果为3
math.ceil(3.9) #向上取整,结果为4
math.sqrt(9) #开方,结果为3
#也可以不用导入整个模块,只导入一个函数
from math import sqrt
sqrt(16) #值为4,不需要加前缀"math.",而上面需要
#对复数开方需要导入cmath模块
import cmath
cmath.sqrt(-1) #值为1j
#另外,python默认支持复数运算,不过一般用不着
(1+3j)*(9+4j) #值为(-3+31j)
5.字符串
python中的字符串很好用:
#字符串
'hello, world!' #单引号,双引号都表示字符串
"hello, world!"
'"I was wrong." she said' #当字符串中有双引号时,可以用单引号表示整个字符串
"Let's go!" #当字符串中有单引号时,可以用双引号表示整个字符串
'''My name is
Kevin, and I
come from China.''' #前后各三个单引号,可以保留字符串原格式,此处需注意,优快云编辑器抽风,自动在开头加了两个单引号。
print(r'I love you.') #字符串前面加上字母r,表示该字符串保留原格式,称为原始字符串,并且不能使用转义字符,但是截尾不能是斜杠
'you' "lucky guy" #字符串可以拼接,结果为'youlucky guy'
x = 'thank '
y = "you"
xy #x和y拼接的错误写法
x + y #正确写法
'love ' + y #正确写法,值为'love you'
#如果字符串的最后一个为斜杠,则输入可以换行:
12 + 5 * \
36 + 1 #等价于12 + 5 * 36 + 1
print("abcde\
fg...") #等价于print("abcdefg..."),此处测试请手动输入,可能博客编辑器有问题,会自动在斜杠后面加多余的字符。
u'xyz' #字符串前加上字母u表示为unicode字符串,python3不需要加,所有字符串都为UNICODE字符串
如有错误,请批评指正。