下载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类型,字符串类型

使用input() 方法
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:
# 不管有没有错误,我都会执行