本文目的
- 了解python的中文编码、基础语法、变量类型、运算符等编码基础知识;
- 对比C语言来观察python的简洁;
- 本文章只站在作者学习角度,若有补充及错误,恳请斧正
基本知识
行和缩进
python 最具特色的就是用缩进来写模块: 在 Python 的代码块中必须使用相同数目的行首缩进空格数。建议你在每个缩进层次使用 “单个制表符” 或 “两个空格” 或 “四个空格” , 切记不能混用
多行语句
语句的结束符(表示一条语句):
- 新行
- 多行连接符:斜杠(\)
- [], {} 或 () 括号
- 三引号:编写多行文本的快捷语法
- 分号(;):同一行使用多条语句
python引号
表示字符串,引号的开始与结束必须是相同类型的。
- 引号( ’ )
- 双引号( " )
- 三引号( ‘’’ 或 “”" )
python注释
单行注释:# 多行注释:’’’ 或 “”" (三引号)
python空行
函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。
空行与代码缩进不同,空行并不是Python语法的一部分。书写时不插入空行,Python解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。
记住:空行也是程序代码的一部分。
print输出与(多)变量赋值
print 默认输出是换行的,如果要实现不换行需要在变量末尾加上逗号 (,)。 Python 中的变量赋值不需要类型声明。 Python允许你同时为多个变量赋值——
- 多对象指单变量 :变量被分配到相同的内存空间上
- 多对象指多变量 :变量被分别只给相应位置的对象
(注:python3.6.5 shell里,无法使用,只能单个赋值!!)
在python3.6.5 shell里,print输出格式为:
x = 'a'
y = 'a'
print (x)
print (y)
a
a
x = y = z = 1, 1.0, "Hello"
print (a,b,z)
1 1.0 Hello
其他版本shell一般在输出时,无括号。
标准数据类型
Numbers(数字)
del语句:删除一些对象(单个或多个)的引用
int(有符号整型) long(长整型,也可以代表八进制和十六进制) float(浮点型) complex(复数)
String(字符串)和List(列表)
[ 位置1 : 位置2] [ 位置1:] (*)重复操作 (+)字符串连接运算符 第三个参数(步长):间隔的位置、长短
str = 'Hello World!'
print str
print str[0]
print str[2:5]
print str[2:]
print str * 2
print str + "TEST"
list = [ 'runoob', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']
print list
print list[0]
print list[1:3]
print list[2:]
print tinylist * 2
list[0:4:2]
print list + tinylist
输出数字,不用加引号;而输出数组,反之; 输出一个元素,不加[ ];而输出多个数据,反之;
Tuple(元组)
类似于 List(列表),元组用 () 标识,但是元组不能二次赋值,相当于只读列表。
Dictionary(字典)
字典是无序的对象集合,字典当中的元素是通过键来存取的,而不是通过偏移存取(因为列表是有序的对象集合)。 字典用"{ }"标识。字典由索引(key)和它对应的值value组成。
数据类型转换
函数 | 描述 |
---|
int(x [,base]) | 将x转换为一个整数 | long(x [,base] ) | 将x转换为一个长整数 | float(x) | 将x转换到一个浮点数 | complex(real [,imag]) | 创建一个复数 | str(x) | 将对象 x 转换为字符串 | repr(x) | 将对象 x 转换为表达式字符串 | eval(str) | 用来计算在字符串中的有效Python表达式,并返回一个对象 | tuple(s) | 将序列 s 转换为一个元组 | list(s) | 将序列 s 转换为一个列表 | set(s) | 转换为可变集合 | dict(d) | 创建一个字典。d 必须是一个序列 (key,value)元组。 | frozenset(s) | 转换为不可变集合 | chr(x) | 将一个整数转换为一个字符 | unichr(x) | 将一个整数转换为Unicode字符 | ord(x) | 将一个字符转换为它的整数值 | hex(x) | 将一个整数转换为一个十六进制字符串 | oct(x) | 将一个整数转换为一个八进制字符串 |
运算
###易混
运算符 | 含义 |
---|
** | 幂 | // | 取整除(向下取整) | **= | c**=a 等效于c=c**a | & | 按位与:相应位都为1则结果位为1 | 下划线 | 按位或:相应位有个即可使结果位为1 | ^ | 按位异或:相应位不同结果位为1 | ~ | 按位取反 | << | 左移:a<<2,右补0 | >> | 右移:a>>2,左补0 |
区别
- is 用于判断两个变量引用对象是否为同一个(id是否相同), == 用于判断引用变量的值是否相等。
- is为简单的int类型且数值小,python不会两次为其分配内存,而是只分配一次;大的int型值,若在同一行且值相等则id相同,反之,在不同行同值也不会相等;float型等,id始终不同。
补充:(当数超过一个字节时,按不同对象来对待,python 为不同数分配了不同内存,不同数为不同的对象,只是值相同而已,is 结果为 false,== 依然为 true。) - b=a和c=a[:](a为列表)的区别:前者传递引用(id相同)、后者是拷贝([:]是重新推导,会产生新的对象,内存地址不同)
- 无++或–:因为在 Python 里的数值和字符串之类的都是不可变对象,对不可变对象操作的结果都会生成一个新的对象。
|