一、基本使用
1.1 print功能
1.python3以后的版本需要加括号,python2.7及2.7以前的版本不需要加括号。
2.打印字符串需要加单引号或者双引号。
3.打印字符串的叠加可以用+将两个字符串连接起来。
4.可以打印简单的运算(+,-,*,/)。字符串不可以直接和数字相加。
5.打印多个变量时用,分隔。如:print(a,b,c)
1.2 基础数学运算
1.基本运算有:+,-,,/,//(除取整),%(除取余),m*n(m的n次方)。
1.3 变量
1.命名规则:英文、数字和_的组合,不能以数字开头;区分大小写。
2.可以一次定义一个或者多个变量
二、while和for循环
2.1 while循环
1.基本语法
while condition: #condition为判断条件
expressions #expressions是执行的语句
2.注意点:在使用while的时候在循环内部一定要修改判断条件的值。如果陷入无限循环,使用ctrl+c来终止程序
3.condition可以是判断表达式(<,>,<=,>=,==,!=);也可以是数字,整数和浮点数也能进行Boolean数据操作,0或者0.0会返回False其余的返回True;也可以是None的数据类型,将会返回False;也可以是集合类型,例如list,tuple,dict和set等,如何集合中的元素数量为0,返回False,否则返回True。
2.2 for循环
1.基本语法:
for item in sequence: #sequence为可迭代的对象,item为序列中的每个对象
expressions
2.可迭代对象可以用range来获得,range有三种方法:
(1)range(start, stop),start是序列的起始值,stop为结束值,但不包括改值。
(2)range(stop),默认从0开始
(3)range(start, stop, step),step是步长,每次增加step的值。
3.python内置的list、tuple、dict和set四种基本集合的对象都能够作为迭代集。
4.可以按照迭代器的要求自己生成迭代器对象。只要类中实现了__iter__
和next
函数,就可以使用。例子如下(来源于莫烦的python教程)。
# define a Fib class
class Fib(object):
def __init__(self, max):
self.max = max
self.n, self.a, self.b = 0, 0, 1
def __iter__(self):
return self
def __next__(self):
if self.n < self.max:
r = self.b
self.a, self.b = self.b, self.a + self.b
self.n = self.n + 1
return r
raise StopIteration()
# using Fib object
for i in Fib(5):
print(i)
5.Python 使用 yield 关键字也能实现类似迭代的效果,yield 语句每次 执行时,立即返回结果给上层调用者,而当前的状态仍然保留,以便迭代器下一次循环调用。这样做的 好处是在于节约硬件资源,在需要的时候才会执行,并且每次只执行一次。
def fib(max):
a, b = 0, 1
while max:
r = b
a, b = b, a+b
max -= 1
yield r
# using generator
for i in fib(5):
print(i)
三、if判断
1.基本语法
#第一种类型
if condition:
expressions
#第二种类型
if condition:
true_expressions #条件为真执行的语句
else:
false_expressions #条件为假时执行的语句
#第三种类型
if condition1:
true1_expressions
elif condition2:
true2_expressions
elif condtion3:
true3_expressions
elif ...
...
else:
else_expressions
2.python 可以通过if-else
完成类似condition ? value1 : value2
这样的三木运算的功能。
var = var1 if condition else var2
四、定义功能
4.1 def函数
1.基本语法:
def function_name(parameters):
expressions
4.2 函数参数
1.基本用法:
def function_name(parameters):
expressions
4.3 函数默认参数
1.基本用法:
def function_name(para_1,...,para_n=defau_n,..., para_m=defau_m):
expressions
2.默认参数不能出现在非默认参数前面。
3.自调用:如果执行该脚本的时候,该 if 判断语句将会是 True,那么内部的代码将会执行。 如果外部调用该脚本,if 判断语句则为 False,内部代码将不会执行。
if __name__ == '__main__':
#code_here
4.可变参数:参数个数不固定。可变参数在函数定义不能出现在特定参数和默认参数前面,因为可变参数会吞噬掉这些参数。
def report(name, *grades): #参数 *grades 使用了 * 修饰,表明该参数是一个可变参数,这是一个可迭代的对象
total_grade = 0
for grade in grades:
total_grade += grade
print(name, 'total grade is ', total_grade)
5.关键字参数:参数在函数内部自动封装成一个字典(dict),通常来讲关键字参数是放在函数参数列表的最后
def portrait(name, **kw): #\*\*表示kw是关键字参数
print('name is', name)
for k,v in kw.items():
print(k, v)
五、变量形式
1.局部变量
2.全局变量
六、文件读写
1.open读文件方式
my_file=open('my file.txt','w') #用法: open('文件名','形式'), 其中形式有'w':write;'r':read.
my_file.write(text) #该语句会写入先前定义好的 text
my_file.close() #关闭文件
2.在文件后面追加内容
my_file=open('my file.txt','a') # 'a'=append 以增加内容的形式打开
my_file.write(append_text)
my_file.close()
3.读取文件类容
(1) file.read() 能够读取到文本的所有内容
file= open('my file.txt','r') content=file.read() print(content)
(2)按行读取 file.readline()
file= open('my file.txt','r') content=file.readline() # 读取第一行 print(content)
(3)读取所有行 file.readlines()
file= open('my file.txt','r') content=file.readlines() # python_list 形式,如果要打印出内容,需要用for来迭代 print(content)
七、class类
1.基本用用法:class
定义一个类, 后面的类别首字母推荐以大写的形式定义,比如Calculator
。class
可以先定义自己的属性,比如该属性的名称可以写为 name='Good Calculator'
。class
后面还可以跟def
, 定义一个函数。
class Calculator: #首字母要大写,冒号不能缺
name='Good Calculator' #该行为class的属性
price=18
def add(self,x,y): #注意这里的self 是默认值
print(self.name)
result = x + y
print(result)
def minus(self,x,y):
result=x-y
print(result)
def times(self,x,y):
print(x*y)
def divide(self,x,y):
print(x/y)
2.类的初始化:init可以理解成初始化class的变量.
class Calculator:
name='good calculator'
price=18
def __init__(self,name,price,height,width,weight): # 注意,这里的下划线是双下划线
self.name=name
self.price=price
self.h=height
self.wi=width
self.we=weight
八、input输入
1.variable=input()
表示运行后,可以在屏幕中输入一个数字,该数字会赋值给自变量,从屏幕获得的值默认为字符串。
a_input=input('please input a number:')
九、元组、列表、字典
1.tulpe:用小括号、或者无括号来表述,是一连串有顺序的数字,元素可以一个一个地被迭代、输出、运用、定位取值。元素的值不能被改变。
2.list:是以中括号来命名的,元素可以一个一个地被迭代、输出、运用、定位取值。元素的值可以被改变。用append()
在末尾添加元素,insert()
在指定的位置添加元素,remove()
删除某个元素,count()
计算某个元素出现的次数,sort()
排序。
3.字典:有key和 value两种元素,每一个key对应一个value。
a_tuple = (12, 3, 5, 15 , 6)
another_tuple = 12, 3, 5, 15 , 6
a_list = [12, 3, 67, 7, 82]
d1 = {'apple':1, 'pear':2, 'orange':3}
十、模块
1.import time
指 import
time
模块。
2.import time as __
,__
下划线缩写部分可以自己定义。
3.from time import time,localtime
,只import
自己想要的功能。
4.from time import *
输入模块的所有功能。
十一、其他补充
1.跳出循环:break & continue
2.错误处理:使用try
try:
file=open('eeee.txt','r') #会报错的代码
except Exception as e: # 将报错存储在 e 中
print(e)
3.zip函数接受任意多个(包括0个和1个)序列作为参数,合并后返回一个tuple列表。
4.lambda:定义一个简单的函数。fun = lambda x,y : x+y
。
fun= lambda x,y:x+y
x=int(input('x=')) #这里要定义int整数,否则会默认为字符串
y=int(input('y='))
print(fun(x,y))
5.map:是把函数和参数绑定在一起。
def fun(x,y):
return (x+y)
a=list(map(fun,[1,2],[3,4]))
6.copy.copy & copy.deepcopy 浅复制 & 深复制:当使用浅拷贝时,python只是拷贝了最外围的对象本身,内部的元素都只是拷贝了一个引用而已;deepcopy对外围和内部元素都进行了拷贝对象本身,而不是对象的引用。
7.多线程
8.多进程
9.tkinter窗口
10.pickle 是一个 python 中, 压缩/保存/提取 文件的模块。
import pickle
a_dict = {'da': 111, 2: [23,1,4], '23': {1:2,'d':'sad'}}
# pickle a variable to a file
file = open('pickle_example.pickle', 'wb')
pickle.dump(a_dict, file) #保存a_dict的内容到file里面
file.close()
# reload a file to a variable
with open('pickle_example.pickle', 'rb') as file:
a_dict1 =pickle.load(file) #提取用pickle保存的文件的内容
print(a_dict1)
11.集合set:最主要的功能就是寻找一个句子或者一个 list 当中不同的元素。
12.正则表达式