第一章 基础
1.1 环境
首先你需要下载安装python,如果你喜欢其他环境,还需要自己安装以及配置IDE。本文python的版本默认为python3。
1.2 基础表达式
常见的算术运算符都较为常规。
除法的运算结果默认为浮点数。
1/2 = 0.5
2/2 = 1.0
整除的运算符为双斜杠,为向下取整。
1//2 = 0
取余的操作为百分号,需要注意的是当有负号时的结果,原理为整除结果加余数为被除数。
10 % -3 = -2
乘方操作为**,当然也可用函数pow代替
1.3 变量
python的变量没有默认值,且python的变量可以引用大部分的python元素
变量名称由字母、数字和下划线构成,且不能以数字开头
1.4 获取输入
input("your input is : ")
your input is : beijing
1.5 函数
python有很多内置函数,例如round为取整到最近的整数,如果为中间数便区政府到偶数
round(1 / 2) = 0
round(1.1 / 2) = 1
python的变量有很多功能,其中包括可以用变量来引用函数
1.6 模块
python可以引用模块,用来拓展功能。可以直接引用的模块又称为python的标准库。
引用模块有两种方法:
- import math
math.sqrt(4) - from math import sqrt
注意,sqrt不能用来处理负数,cmath中的sqrt可以,而为了防止两个模块中sqrt的冲突,最好使用第一种方法,所以除非必须使用from来import,应该坚持使用第一种方法。
python本身提供了对负数的支持,用j来表示,如:
(2 + 5j) * (3 - 4j)
1.7 使用未来版本的功能
python可以引用__future__模块来使用未来版本的功能
1.8 将脚本变成程序
脚本中首行需要添加 #!和python的绝对路径
#!/usr/bin/env python
然后还需要将程序改变成可执行文件
$ chmod a+x test.py
最后就可以直接运行了
$ test.py
1.9 单引号与双引号
两者作用相同,可以用来消解歧义,当然歧义也可以用转义字符\来进行转义
'I\‘m a boy’
1.10 str与repr
str() 与 repr() 的不同在于:
str() 的输出追求可读性,输出格式要便于理解,适合用于输出内容到用户终端。
repr() 的输出追求明确性,除了对象内容,还需要展示出对象的数据类型信息,适合开发和调试阶段使用。
print(repr(‘123’))
‘123’
可以理解为repr直接输出原始内容,而str会变更内容让用户更好理解。
1.11 长字符串和原始字符串
‘’’ I’m a boy’’’ 长字符串可以用三引号表示,里面的单引号和双引号无需转义,也可以用来跨越多行的字符串表示。
表达式或者另一种跨越多行的方法是在行尾加入反斜杆\。
原始字符串可以用r来表示,可以避免多次使用转义字符来进行转义,这种功能也可用repr函数实现。
1.12 编码与字节
编码就是将字符串编码为bytes。
python使用unicode编码来表示文本,unicode有三种指定字符的机制,16位,32位或者字符表示,‘\u****’,‘\U********’,‘\N{***}’,对应的表格网站http://unicode-table.com。
由于固定位数占用较大储存空间,所以有了变长编码,utf-8,1-6个字节变长,相比较而言,utf-8编码速度慢。
所以默认python的字符串是用unicode编码,保存编码使用utf-8。
需要注意的是,你可以不用utf-8进行储存,但是bytes本身并不知道哪种编码,所以你需要跟踪编码,并且在加载的时候声明。
当你想使用其他编码方式保存时,加入下面这一行。
# -*- coding: encoding name -*-
python还提供了可变版本的bytes,bytearray,x = bytearray(b"and!"),要修改时必须指定0-255的值,可以用ord函数获取,x[1] = ord(b’b’).
1.13 扩展
十六进制、八进制和二进制
十六进制数、八进制数和二进制数分别以0开头表示 ,例如 0xFF, 011 , 0b0000000011
1.14 知识点
math.floor() 向下取整
math.ceil() 向上取整
cmath.sqrt() 负数开方
bytes() 返回字节编码
round() 取整,为5时取整到偶数
repr() 返回字符串表示