下载python
去python官网下载
在线python编辑器
在线python编辑器
语法
print输出 多行换行
1 2 3 4 5 6 7 8
| //print输出 print('hello word')
//print输出 多行换行 print('''我是长内容 可以自行换行 一行白鹭上青天''')
|
变量
1 2 3
| //变量 my_name='祝我好运' print('我的名字'+my_name)
|
获取长度 和 索引取值
1 2 3 4 5
| //获取字符串长度 len('hello')
//索引获取值 s = 'hello'[1] //结果是e
|
数据类型
数据类型 :布尔值、空值类型、浮点类型、字符串类型 整数类型
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| //布尔值 b1=True b2=False
//空值类型 n = None
//type函数 获取数据类型 type(b1) type(n)
//类型转换 int('3') //输出类型为int整数类型 float('3') //输出类型为float类型,浮点类型 str(3) //输出类型为str类型,字符串类型
|
1 2 3 4 5 6 7 8
| //输入,使用input() 方法 # BMI = 体重 / (身高 ** 2) user_weight = float(input('请输入您的体重(单位:kg):')) user_height = float(input('请输入您的体重(单位:m):')) user_BMI = user_weight / (user_height) ** 2 print(user_BMI) print('您的BMI值是'+ str(user_BMI))
|
条件语句 和逻辑判断
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| //条件语句 if [条件]: [执行语句] else: [执行语句]
if [条件1]: [执行语句] elif [条件2]: [执行语句] elif [条件3]: [执行语句] else: [执行语句]
//逻辑条件 and or not
and 与 都为true 返回true
or 或 其中一个为true 返回true
not 非 取反的意思
|
数组
1 2 3 4
| //数组 shop_list = [] #定义一个数组 shop_list.append('zf') #追加数据 shop_list.remove('zf') #删除数据
|
对象
1 2 3 4 5 6 7 8 9 10 11 12
| //对象 counsr_obj = {'name':'zf','age':'30'} counsr_obj['name'] #查询数据
'name' in counsr_obj #判断对象中是否含有这个键 存在true 不存在false if 'name' in counsr_obj: # 判断逻辑
del counsr_obj['name'] #删除 counsr_obj.keys() #所有键 counsr_obj.values() #所有值 counsr_obj.items() #所有键值对
|
for 循环
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| //for 循环 for 变量名 in 对象: # 对每个对象的操作 #...
counsr_obj = {'name':'zf','age':'30'} for index,item in counsr_obj.items(): if index == 'name': print('你的名字是'+item)
#或者 for counsr_objs in counsr_obj.items(): counsr_objs_index = counsr_objs[0] counsr_objs_item = counsr_objs[1] if counsr_objs_index == 'name': print('你的名字是'+counsr_objs_item)
|
range 方法
整数列数组 eg:[1,2,3,…,9] 但是不包含最后一位 参数1 起始值 参数2 结束值 参数3 步长
1 2 3 4
| //range 方法 range(1,10,1) # 返回的是一个整数列数组 eg:[1,2,3,...,9] 但是不包含最后一位 参数1 起始值 参数2 结束值 参数3 步长 for num in range(1,10): print(num)
|
while 循环
在条件不知道什么时候执行结束的时候,使用while循环
1 2 3 4 5
| //while 循环 在条件不知道什么时候执行结束的时候,使用while循环 # measure() 获取当前天气亮度 我们写一个代码,自动拍照片,当天空亮度 < 500 天黑了 就不拍照 while measure() >= 500 # 拍照片 photo()
|
字符串
拼接方法 3中方式 format 方法 键位置使用; 命名参数使用;f字符使用 需要在之前加上f
1 2 3 4 5 6 7 8 9 10 11 12 13
| //字符串 拼接方法 3中方式 # 我们可以使用format 方法 键位置使用 demostr3 = '''你好: {0}: 我是 来自中国的学生,很高兴和你通信...,我今年{1}岁,性别男'''.format(myname,myage) print(demostr3) #或者 命名参数使用 demostr4 = '''你好: {name}: 我是 来自中国的学生,很高兴和你通信...,我今年{age}岁,性别男'''.format(name=myage,age=myage) print(demostr4) # 或者 f字符使用 需要在之前加上f demostr5 = f'''你好: {myage}: 我是 来自中国的学生,很高兴和你通信...,我今年{myage}岁,性别男''' print(demostr5)
|
函数
1 2 3 4 5 6 7 8 9
| // 函数 # 定义函数 自己创建函数 strjianjie = ''; def demosfunction(name,age): #函数自己逻辑 #... return f'我的名字是{name},年龄是{age}' strjianjie = demosfunction(myage,myage) print(strjianjie);
|
引入模块
1 2 3 4 5 6 7 8
| //引入模块 # 1.inport 语句 import statistics print(statistics.median([19,5]))
# 2. from...inport...语句 from statistics import median print(median([19,5]))
|
对象
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| //对象 # 创建对象 使用class xxx 构造函数__init__(self,xx,xx) 定义实例对象的属性 第一个参数是固定的,是对象本身 class cutcat: def __init__(self,age): # 构造函数的代码 selfile.name = '橘猫' selfile.age = age
def speak(self): # 自定义方法,第一参数是固定的,是对象本身,用于获取对象属性,进行操作 print(f'我是自定义的方法,可以获取名字:{selfile.name}')
cat1 = cutcat(2); # 可以传参数 cat1.name # 结果橘猫 cat1.age # 结果2岁
//对象 继承 class parentmanal: # 父类 def __init__(self,name,sex): selfile.name = name; selfile.sex = sex; def poop(self): print(f'{selfile.name}在吃饭')
class childmanal(parentmanal): # 子类 (父类名) 就可以继承父类方法 如果没有__init__ 构造函数会返回到父类中去找 def reaf(self): print(f'{selfile.name}在阅读')
class childmanal2(parentmanal): # 子类 (父类名) 就可以继承父类方法 如果有__init__ 方法 又想要父类的数据,可以使用super() def __init__(self,name,sex): super().__init__(name,sex) # super会调用父类的构成函数,这样我们也就有父类的属性了,也可以自己定义子类的属性了 selfile.has = True
def reaf(self): print(f'{selfile.name}在阅读')
cat = childmanal2('小菊',2); print(cat.poop()) # 小菊在吃饭
|
打开文件open(x,y,z)
第一个参数是 文件路径
第二个参数是模式 r(只读) w(只写) 不写默认r读取模式
第三个参数是编码格式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| f = open('/user/demo/data.txt','r',encoding='utf-8') print(file.read()) # read()方法 一次性读取文件所有内容,以字符串格式返回 文件特别大时候不推荐 print(file.read()) # 再次调用会返回空,因为会记录当前读取位置,已经读取完毕,所以返回空
print(file.readline()) # 会读取一行文件内容,并打印 可以重复使用,读取下一行内容 print(file.readline()) # 下一行内容 print(file.readline()) # 再下一行内容
# 但是我们不可能一行一行写readline() 所以我们会用while循环 linetxt = file.readline(); while linetxt != '': # 判断当前行是否为空 print(linetxt); # 打印当前行 linetxt = file.readline() # 读取下一行
# 也可以使用 file.readlines() 多了一个s 是先读取文件中总共有几行数据,并把数据保存,生成一个数组 linestxt = file.readlines() # 获取数组内容 for item in linestxt: # for循环数组 print(item) # 输出数据
# 文件读取完毕,关闭文件 释放资源 file.close()
|
我们有时候可能会忘记使用close()
方法,可以使用with
更加简单,不需要使用close 会自动关闭
推荐使用:with
使用方法:with open(x,y,z) as xxx as后面是定义的变量名
1 2 3 4
| # 使用with 打开文件并声明变量f with open('/user/demo/data.txt','r',encoding='utf-8') as file: linetxt = file.read() # 读取文件 print(linetxt)
|
open编写文件
1 2 3
| with open('/user/demo/data.txt','w',encoding='utf-8') as file: file.write('hello!\n')
|
提示:如果出现 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
错误
原因分析:在windows系统当中读取文件路径可以使用,但是在python字符串中\有转义的含义,如\t可代表TAB,\n代表换行,所以需要采取一些方式使得\不被解读为转义字符。
1、在路径前面加r,即保持字符原始值的意思。file = open(r"C:\Users\zf105\Desktop\新建文本文档.txt",'r',encoding='utf-8')
2、替换为双反斜杠 file = open('C:\\Users\\Python\\add.dll')
3、替换为正斜杠 file = open('C:/Users/Python/add.dll')
open 函数支持的文件打开模式
模式 |
意义 |
注意事项 |
r |
只读模式打开文件,读文件内容的指针会放在文件的开头。 |
操作的文件必须存在。 |
rb |
以二进制格式、采用只读模式打开文件,读文件内容的指针位于文件的开头,一般用于非文本文件,如图片文件、音频文件等。 |
r+ |
打开文件后,既可以从头读取文件内容,也可以从开头向文件中写入新的内容,写入的新内容会覆盖文件中等长度的原有内容。 |
rb+ |
以二进制格式、采用读写模式打开文件,读写文件的指针会放在文件的开头,通常针对非文本文件(如音频文件)。 |
w |
以只写模式打开文件,若该文件存在,打开时会清空文件中原有的内容。 |
若文件存在,会清空其原有内容(覆盖文件);反之,则创建新文件。 |
wb |
以二进制格式、只写模式打开文件,一般用于非文本文件(如音频文件) |
w+ |
打开文件后,会对原有内容进行清空,并对该文件有读写权限。 |
wb+ |
以二进制格式、读写模式打开文件,一般用于非文本文件 |
a |
以追加模式打开一个文件,对文件只有写入权限,如果文件已经存在,文件指针将放在文件的末尾(即新写入内容会位于已有内容之后);反之,则会创建新文件。 |
ab |
以二进制格式打开文件,并采用追加模式,对文件只有写权限。如果该文件已存在,文件指针位于文件末尾(新写入文件会位于已有内容之后);反之,则创建新文件。 |
a+ |
以读写模式打开文件;如果文件存在,文件指针放在文件的末尾(新写入文件会位于已有内容之后);反之,则创建新文件。 |
ab+ |
以二进制模式打开文件,并采用追加模式,对文件具有读写权限,如果文件存在,则文件指针位于文件的末尾(新写入文件会位于已有内容之后);反之,则创建新文件。 |
try except 异常错误处理
1 2 3 4 5 6 7 8
| try: #正常操作 except: # 异常错误,返回提示信息 else: #没有错误继续运行 finally: # 不管有没有错误,我都会执行
|