导入模块:
from 文件夹名 import .py文件
例:from exercise import first
#从文件夹exercise中导入first.py文件
pycharm下载模块:
File(文件)--》Settings(设置)--》Project:你的项目名字 --》Project Interpreter
函数定义:
#第一种
def sum(a1,a2):
b=a1+a2
return b
print(sum(a+b))
#lambda表达式
sum=lambda a1,a2:a1+a2
print(sum(a+b))
文件读取:
name=input("请输入:")#input获取键盘输入
print('你的名字:'+name)
file=open("exercise.txt","r+")#参数:打开的文件,打开模式(写)
file.write('"1234 567891011')#写入的数据类型必须是字符串
data=file.read(10)#读取指定数量的字符
print(data)
完整的语法格式为:
open(file,mode='r',buffering=-1,encoding=None,errors=None,newline=None,closefd=True,opener=None)file: 必需,文件路径(相对或者绝对路径)。
mode: 可选,文件打开模式
buffering: 设置缓冲
encoding: 一般使用utf8
errors: 报错级别
newline: 区分换行符
closefd: 传入的file参数类型
opener:
mode:
# t 文本模式 (默认)。
# x 写模式,新建一个文件,如果该文件已存在则会报错。
# b 二进制模式。
# + 打开一个文件进行更新(可读可写)。
# U 通用换行模式(不推荐)。
# r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
# rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
# r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
# rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
# w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
# wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
# w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
# wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
# a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
# ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
# a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
# ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
异常处理:
try:
a=0
b=0
c=b/a
if(a==0):
raise Exception("a=0")
#raise一般都写在try中
# raise 关键字用于引发一个异常,基本上和C和Java中的throw关键字相同
# 一旦执行了raise语句,就跳转符合的异常处继续执行,raise之后的语句不在执行
except Exception as e:#如果有异常发生
print(e,'除数不能为0')
else:#如果没有异常发生
print(c)
finally:#不管是否发生异常都执行
print("开始计算")
# 如果当try后的语句执行时发生异常,python就跳回到try并执行第一个匹配该异常的except子句,异常处理完毕,控制流就通过整个try语句(除非在处理异常时又引发新的异常)。
# 如果在try后的语句里发生了异常,却没有匹配的except子句,异常将被递交到上层的try,或者到程序的最上层(这样将结束程序,并打印默认的出错信息)。
# 如在try子句执行时没有发生异常,python将执行else语句后的语句(如果有else的话),然后控制流通过整个try语句。
类的定义:
class student:
#单下划线开头的表示的是 protected 类型,即保护类型只能允许其本身与子类进行访问
# 双下划线的表示的是私有类型(private), 只能是允许这个类本身进行访问了。
__grade=0
def __init__(self,name,age,score,grade):
#这里的__init__方法是固定写法,相当于C语言的构造函数
self.name=name
self.age=age
self.score=score
student.grade=grade
def printStu(self):
print(self.name,self.age,self.score,self.grade)
stu=student('lyh',21,89,1)
#使用类名调用__init__方法
stu.printStu()
del stu
#删除实例,相当于C语言析构函数
class smallstudent(student):#smallstudent继承自student
high=100
#子类不重写 __init__,实例化子类时,会自动调用父类定义的 __init__。
def __init__(self,name,age,score,high):
#super(smallstudent, self).__init__(name,age,score,grade)
self.name=name
self.age=age
self.score=score
self.high=high
def printSStu(self):
print(self.name,self.age,self.score,self.high)
sstu=smallstudent('jkl',10,45,120)
sstu.printSStu()
常用内置函数:
abs()求绝对值print(abs(1+1j))#如果是复数,则结果为a^2+b^2的开根号
all() 函数用于判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False。
any() 函数用于判断给定的可迭代参数 iterable 是否全部为 False,若是则返回 False,如果有一个为 True,则返回 True
int() 函数用于将一个字符串或数字转换为整型。
ord() 函数获取对应字符的ASCII数值
eval() 函数用来执行一个字符串表达式,并返回表达式的值。
isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。isinstance() 与 type() 区别:type() 不会认为子类是一种父类类型,不考虑继承关系。
isinstance() 会认为子类是一种父类类型,考虑继承关系。
如果要判断两个类型是否相同推荐使用 isinstance()。
pow(x,y) 方法返回 xy(x的y次方) 的值。
sum() 方法
sum((2,3,4),1)# 元组计算总和后再加 1
10
sum([0,1,2,3,4],2)# 列表计算总和后再加 2
12
execfile() 函数可以用来执行一个文件,例execfile('hello.py')
bin() 返回一个整数 int 或者长整数 long int 的二进制表示。
hex() 函数用于将10进制整数转换成16进制,以字符串形式表示。
oct() 函数将一个整数转换成8进制字符串。
tuple() 函数将列表和字典转换为元组。
#针对字典 会返回字典的key组成的tuple
bool() 函数用于将给定参数转换为布尔类型,如果没有参数,返回 False。
filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表
例:取列表中的奇数
defis_odd(n):
returnn%2==1
newlist=filter(is_odd,[1,2,3,4,5,6,7,8,9,10])
print(newlist)#结果:1,3,5,7,9
len() 方法返回对象(字符、列表、元组等)长度或项目个数。
range() 函数可创建一个整数列表,一般用在 for 循环中
例:range(0,10,3)# 步长为 3;#结果:0,3,6,9
float() 函数用于将整数和字符串转换成浮点数。
list() 方法用于将元组转换为列表。
格式化字符串的函数 str.format(),它增强了字符串格式化的功能
例:"{1} {0} {1}".format("hello","world")# 设置指定位置
#结果:'world hello world',hello对应0,world对应1
print("网站名:{name}, 地址 {url}".format(name="菜鸟教程",url="www.runoob.com"))
reduce() 函数会对参数序列中元素进行某种方法累积。
例:reduce(add,[1,2,3,4,5])# 计算列表和:1+2+3+4+5
long() 函数将数字或字符串转换为一个长整型。
map() 会根据提供的函数对指定序列做映射。
例:map(lambdax:x**2,[1,2,3,4,5])
# 使用 lambda 匿名函数,结果:[1,4,9,16,25]
cmp(x,y) 函数用于比较2个对象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。
max()和min()
reverse() 函数用于反向列表中元素
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表
例:a=[1,2,3]
b=[4,5,6]
zipped=zip(a,b)# 打包为元组的列表[(1,4),(2,5),(3,6)]
round() 方法返回浮点数x的四舍五入值。
complex(x,y) 函数用于创建一个值为 real + imag * j 的复数或者转化一个字符串或数为复数。如果第一个参数为字符串,则不需要指定第二个参数。结果:x+yj
hash() 用于获取取一个对象(字符串或者数值等)的哈希值。
id() 函数用于获取对象的内存地址。
sorted() 函数对所有可迭代的对象进行排序操作。
例:
students=[('john','A',15),('jane','B',12),('dave','B',10)]
sorted(students,key=lambdas:s[2],reverse=True)# 按第三项降序
sorted(students,cmp=lambdax,y:cmp(x[2],y[2]))# 按第三项升序