默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串。 当然你也可以为源码文件指定不同的编码:
# -*- coding: cp-1252 -*-
python中标识符以字母或者下划线开头,其他部分可包括字母数字下划线,对大小写敏感。
python保留的关键字:
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
python中注释:
单行注释:#
多行注释:多个#,或者''' 注释文字'''
python代码块不用{},而是用缩进来控制
python多行语句:
一行写不完,可以在末尾用:\连接符
或者在 [], {}, 或 () 中的多行语句,不需要使用反斜杠(\)
在 python 用 import 或者 from...import 来导入相应的模块。
print ()默认输出是换行的,如果要实现不换行需要在变量末尾加上 end=" "。可以end=','在输出末尾加符号
python可以在同一行中使用多条语句,语句之间使用分号(;)分割,如:
import sys; x = 'runoob'; print(x)
python中用户输入:input("按下 enter 键后退出输入")
条件控制:if,elis,else 无switch-case语句
循环语句:for与while,没有do......while
break 语句可以跳出 for 和 while 的循环体。如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执行。
continue语句被用来告诉Python跳过当前循环块中的剩余语句,然后继续进行下一轮循环。
循环语句可以有 else 子句,它在穷尽列表(以for循环)或条件变为 false (以while循环)导致循环终止时被执行,但循环被break终止时不执行。
pass是空语句,是为了保持程序结构的完整性。pass 不做任何事情,一般用做占位语句。
Python3基本数据类型
赋值有如下几种方式:
counter = 100 # 整型变量
miles = 1000.0 # 浮点型变量
name = "runoob" # 字符串
#也可以对多个变量赋值
a = b = c = 1
a1, b1, c1 = 1, 2, "runoob"
Python3 中有六个标准的数据类型:
- Number(数字)
- String(字符串)
- Tuple(元组)
- List(列表)
- Set(集合)
- Dictionary(字典)
Python3 的六个标准数据类型中:
- 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
- 可变数据(3 个):List(列表)、Set(集合)、Dictionary(字典)。
1.Number(数字类型)
Python3 支持 int、float、bool、complex(复数)。
内置的 type(var) 函数可以用来查询变量所指的对象类型。此外还可以用 isinstance(var,类型) 来判断:
区别就是:
- type()不会认为子类是一种父类类型。
- isinstance()会认为子类是一种父类类型。
class A:
pass
class B(A):
pass
isinstance(A(), A) # returns True
type(A()) == A # returns True
isinstance(B(), A) # returns True
type(B()) == A # returns False
del语句用来删除对象引用或者对象,语法是:
#可以使用del语句删除一些对象引用
del var1[,var2[,var3[....,varN]]]]
#可以通过使用del语句删除单个或多个对象
del var
del var_a, var_b
2/4 #0.5,/除法返回浮点数
2//4 #0,整数除法//,向下取接近除数的整数,比如:-9//2=-5
17%3 #2,取余
2**5 #32,乘方
Python还支持复数,复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。
2.String(字符串)
单引号同双引号,用 \ 引用转义字符
加号 + 是字符串的连接符, 星号 * 表示复制当前字符串,紧跟的数字为复制的次数
Python 使用反斜杠(\)转义特殊字符,如果你不想让反斜杠发生转义,可以在字符串前面添加一个 r,表示原始字符串,如 r"this is a line with \n" 则\n会显示,并不是换行。另外,反斜杠(\)可以作为续行符,表示下一行是上一行的延续。也可以使用 """...""" 或者 '''...''' 跨越多行。
注意,Python 没有单独的字符类型,一个字符就是长度为1的字符串。
与 C 字符串不同的是,Python 字符串不能被改变。向一个索引位置赋值,比如word[0] = 'm'会导致错误。
字符串的截取的语法格式如下:变量[头下标:尾下标:步长]
3.Tuple(元组)
元组(tuple)与列表(list)类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。
元组中的元素类型也可以不相同
元组与字符串类似,可以被索引且下标索引从0开始,-1 为从末尾开始的位置。也可以进行截取
其实,可以把字符串看作一种特殊的元组
虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表。
构造包含 0 个或 1 个元素的元组比较特殊,所以有一些额外的语法规则:
tup1 = () # 空元组
tup2 = (20,) # 一个元素,需要在元素后添加逗号
元组也可以使用+操作符进行拼接。
4.List(列表)
列表是写在方括号 [] 之间、用逗号分隔开的元素列表。
和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。
列表截取的语法格式如:变量[头下标:尾下标]
加号 + 是列表连接运算符,星号 * 是重复操作。对元组一样效果。
与Python字符串不一样的是,列表中的元素是可以改变的
和字符串一样,list可以被索引和切片
List内置了有很多方法,例如append()、pop()等等
string、list和tuple都属于sequence(序列)
在序列中遍历时,索引位置和对应值可以使用 enumerate() 函数同时得到
>>> for i, v in enumerate(['tic', 'tac', 'toe']):
... print(i, v)
...
0 tic
1 tac
2 toe
同时遍历两个或更多的序列,可以使用 zip() 组合
questions = ['name', 'quest', 'favorite color']
answers = ['lancelot', 'the holy grail', 'blue']
for q, a in zip(questions, answers):
print('What is your {0}? It is {1}.'.format(q, a))
#结果
What is your name? It is lancelot.
What is your quest? It is the holy grail.
What is your favorite color? It is blue.
列表解析:列表名=[var表达式 for var 循环] #对for循环中每一个结果进行var表达式,然后放入列表。
可用for循环遍历,元组也可以被for循环遍历。
5.Set(集合)
集合(set)是一个无序不重复元素的序列。
基本功能是进行成员关系测试和删除重复元素。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}
print(student) # 输出集合,重复的元素被自动去掉
# 成员测试
if 'Rose' in student : #True
print('Rose 在集合中')
else :
print('Rose 不在集合中')
# set可以进行集合运算
a = set('abracadabra')
b = set('alacazam')
print(a)
print(a - b) # a 和 b 的差集
print(a | b) # a 和 b 的并集
print(a & b) # a 和 b 的交集
print(a ^ b) # a 和 b 中不同时存在的元素
6.Dictionary(字典)
列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
添加时用键值对的方式,删除时可用del 字典名[键名]
字典是一种映射类型,字典用"{ }"标识,它是一个无序的键(key) : 值(value)对集合。
键(key)必须使用不可变类型。在同一个字典中,键(key)必须是唯一的。
print (tinydict.keys()) # 输出所有键
print (tinydict.values()) # 输出所有值
构造函数 dict() 可以直接从键值对序列中构建字典
字典类型也有一些内置的函数,例如clear()、keys()、values()等
创建空字典使用{}
注意:键值对的添加顺序不一定是字典中的排列顺序
字典与列表可以相互嵌套
Python3数据类型转换
str(x) 将对象x转变为字符串
chr(x) 将一个整数转换为一个字符
tuple(s) 将序列 s 转换为一个元组
list(x) 将序列 s 转换为一个列表
repr(x) 将对象x转换为表达式字符串
set(x) 转变为可变集合
frozenset(s) 转变为不可变集合
dict(d) 创建一个字典。d必须是一个序列(key,value)元组
ord(x) 将一个字符串转变为它的整数值
hex(x) 将一个整数转变为代表其大小的一个十六进制字符串
oct(x) 将一个整数转变为代表其大小的一个八进制字符串