print("输出内容", end = "两次输出内容连接符")
#例子:
print("你好", end = "-") print("Python")
#输出结果:“你好-Python”
input("提示用户输入内容")
#变量:“=”号表示赋值 格式:变量名 = 初始化的值
num = 13
#变量的命名规则
#1.由字母数字和下划线组成;2.数字不能开头
#3.严格区分大小写; 4.不能使用pyhon中的关键字
#获取最大值 max(1, 4, 6, 5) -- > 6
#获取最小值 min(1, 4, 6, 5) --> 1
#算术运算符 +(加)、-(减)、*(乘)、/(除)
+号:+号前后是两个数字,表示进行加法运算
+号前后是两个字符串,表示字符串的拼接
*号:*号前后是两个数字,表示乘法
*号前是字符串,后面是数字,表示将字符串连续输出指定次 “ab” * 3 à “ababab”
#**(次方运算)2**3表示 3个2相乘
# % 表示计算两个数相除的余数 5 %2 à 1
#比较运算符:
大于> 小于< 等于= 大于等于>= 小于等于<= 不等于!=
自增 += 表示 a += 1 à a = a + 1
自减 -= 自乘:*= 自除:/=
#逻辑运算符
and 表示与,并且的意思,and的左右两边条件都为True时,整体才会为True,否则为False
or 表示或者的意思,or的左右两边有一个True,则整体就为True,只有左右两边都为False的时候,整体才会为False
#数据类型
int("123") #--》123,表示整数类型,可以将字符串类型的整数,转换为整数
str(123) #--》"1243",表示字符串类型,可以将其他数据类型,转换为字符串
#表示小数类型,也叫浮点数类型,可以将其他数据类型转换为小数
float("12.3") #-->12.3
#无限循环:
n = 0
while True:
print("无限循环")
n += 1 #表示自增,即 n = n + 1
if n == 3: #if判断语句
continue #continue表示跳过本次循环,直接开始下次循环
elif n == 5:
print("循环5次了")
#elif 表示否则如果,在有多个条件时使用,但是,if 和elif 以及
#else 只能有一个条件满足,满足条件时执行对应的代码,其他的就会跳过
elif n == 10:
print("第10次了,马上结束")
if n >10:
print("超过10次,循环结束")
break # break:结束整个循环
#注意:break和continue只能在while循环里面使用
#random模块,使用前先要 import random 将其导入
result = random.randint(0, 10) #在0 - 10之间获取一个随机数,0可以省略
numList = [1, 2, 3, 4, 5, 6]
num = random.choice(numList) # choice 函数表示在整个列表中随机抽取一个元素
#round是四舍五入函数,第一个参数是数字,第二个是要保留的小数的个数
round(2.45, 1) # à2.5
#分支语句
1.单分支
if 条件:
条件成立时执行的代码
2. 双分支语句
if 条件1:
条件1成立时的代码
else:
条件1不成立时的代码
3. 多分支语句
if 条件1:
条件1成立时的代码
elif 条件2:
条件2成立时的代码
else:
条件1和条件2都不成立时的代码
列表:可以存放多种任意类型数据的容器,索引从0开始编号
格式:列表名 = [“值1”, 123, 2.5, [1, 2, 3]]
获取列表元素: 变量 = 列表名[索引]
resList = [“苹果”, “香蕉”, “栗子”, “大米”]
res = resList[3] à “大米”
往列表中添加元素:列表名.append(要添加的值)
resList.append(“橙子”) à resList = [“苹果”, “香蕉”, “栗子”, “大米”, “橙子”]
获取列表的长度:len(列表名)
Length = len(resList) à 5 表示列表中有五个元素
获取列表中某个元素的索引:index(“元素名称”)
resName = resList.index(“大米”) à 3
None: 可以用来表示空元素
修改列表元素:将resList列表中第2个(索引为1)的元素修改成哈密瓜
resList[1] = “哈密瓜”
删除列表元素的方式:resList = [“苹果”, “香蕉”, “栗子”, “大米”, “橙子”]
1. 列表名.pop(要删除数据的索引) 根据索引位置删除元素
resList.pop(2) à resList = [“苹果”, “香蕉”, “大米”, “橙子”]
2. 将列表元素修改为None,也代表删除
resList[2] = None à resList = [“苹果”, “香蕉”, None, “大米”, “橙子”]
3. 列表名.remove(要删除数据的全称) 根据元素值删除元素
resList.move(“大米”) à resList = [“苹果”, “香蕉”, “栗子”, “橙子”]
4. del 列表名[要删除数据的索引] 根据索引位置删除元素
list()函数:将字符串转换成列表
strList = list(“ABC得分”)à strList = [“A”, “B”, “C”, “得”, “分”]
列表名.insert(插入位置索引, 要插入的元素),往列表的指定位置插入一个元素
resList = [“苹果”, “香蕉”, “栗子”, “大米”]
resList.insert(0, “可乐”) à resList = [“可乐”, “苹果”, “香蕉”, “栗子”, “大米”]
sum() 求和函数:计算多个数字或者一个数字列表中所有数字的和
sum(1, 2, 3) à6 sum([2, 3, 4]) à 9
join函数:将列表中的所有元素使用一个指定符号链接,转换为一个字符串
in 语法的使用:表示什么是否在列表或者字符串里面
12 in [1, 3, 5, 12, 6] 表示判断12是否在这个列表中,通常配合if判断语句来使用
not in 语法:表示判断什么东西是否不再某个列表或字符串中,和in相反
in 以及 not in 的执行结果为True 或者False
for 循环:
固定格式:for i in 要遍历的内容:
1、次数限制循环:
for i in range(10): 表示循环10次,0-9,i是一个变量,从0开始,每次拿取一个数字,到9结束。
range是一种特殊的列表,range(1, 5) 表示的是1-4这些数字相当于à[1, 2, 3, 4]
numList = [“a”, “b”, “c”, “d”]
for i in numList: 表示遍历列表
print( i )
结果为:打印a , b, c, d,每行一个
strs = “你好世界”
for i in strs: 表示遍历字符串
print( i )
结果为:打印 你, 好, 世, 界 ,每行一个
#字符串的操作函数:
1. 字符串的不能直接修改,每次修改,相当于是利用旧的字符串通过操作得到新的字符串
strs = “python”
2. 替换字符串中的内容,将strs这个字符串中的h替换成 *
str1 = 字符串名.replace(被替换的目标,替换的结果)
str1 = strs.replace(“h”, “*”) à str1 = “pyt*on”
3. 切片想要获取字符串中连续的部分内容:格式:字符串名[开始索引 : 结束索引+1]
对strs = “python” 进行切片操作,获取”th” t的索引为2,h的索引为3
Res = strs[2: 4] à “th” 两个索引用冒号隔开
注意,如果开始索引为0,则开始索引可以省略,可以写成: 字符串名[ : 结束索引+1]
如果要拿去的到字符串的最后一个字符,则结束索引可以省略,可以写成: 字符串名[开始索引 : ]
4. 对字符串的其他操作函数:
split() 字符串拆分函数,可以将字符串拆分为一个列表写法:split(字符串, 切割符号)
strs = “a-b-c-de-*f”
split(strs, “-”) à [“a”, “b”, “c”, “de”, “*f”]
#字典相关内容
1. 字典的书写格式:字典是一对对的存放元素,相当于一把钥匙对应一个柜子
字典名 = {“键1” : “值1”, “键2” : “值2”………}
2. 获取字典的值:只能通过键来获取值
card = {"名称": "诺兹多姆", "攻击力":5000}
学会获取字典中的值:card["名称"] à诺兹多姆
3. 学会修改字典中的元素:
card = {"名称": "诺兹多姆", "攻击力":5000},
card["攻击力"] = 4000 à card = {"名称": "诺兹多姆", "攻击力":4000}
# turtle 模块 使用前先要导入turtle
forward()前进函数和 backward()后退函数画直线,参数为画线的长度;
left()左转函数和 right()右转函数进行转换方向,参数为转的角度大小;
pencolor()函数改变线条颜色,参数为颜色的单词;
fillcolor()函数改变图形填充颜色 参数为颜色的单词,配合begin_fill()开始填充,end_fill()结束填充来使用,填充图形的绘制过程写在begin_fill()和end_fll()的中间
circle()函数画圆,参数为画圆的半径,以及角度,默认为360;
dot()函数画圆点,参数为:点的直径,以及点的颜色。
Turtle()创建画笔的函数:
goto()函数的使用:让画笔去到某个指定的地方,参数为:目标点的X、Y坐标
pensize()设置画笔的粗细
write(文字, font = (“字体”, 文字大小)) 使用画笔在窗口中绘制文字
speed()设置画笔的绘画速度,0最快,1最慢,从1开始,数字越大,速度越快
towards()函数获取画笔1面向画笔2的角度,写法为:画笔1.towards(画笔2)
distance()函数,获取画笔1和画笔2之间的距离,写法为:画笔1.distance(画笔2)
setheading()设置画笔的面向方向
color():设置画笔和填充颜色,写两个参数:color(画笔颜色, 填充颜色);一个参数时,表示两种颜色一样
clear():清除指定画笔绘制的图形
tracer()、update(),配合使用,选择是否开启绘制过程,tracer()参数为False表示不开启,默认为True表示开启
hideturtle()隐藏画笔
time 模块的 sleep()的使用 让程序休眠指定时间,单位为秒
bgpic("背景.png")函数给窗口添加背景图片
setup(宽, 高)函数的参数数值设置窗口的大小
用 register_shape()函数可以将 gif 图添加进 shape()函数的形状库中
turtle.bye(),表示结束,关闭窗口
明白使用事件函数之前通过 listen()函数表示开启事件监听
通过 onscreenclick(执行的函数名)事件函数获取鼠标点击位置的坐标,并将其xy坐标当做参数传递给执行的函数
onkeypress(执行的函数名, 按键名) 监听某个按键被按下,按下时,会执行对应的 执行的函数。
#自定义函数
通过 def 关键字自定义满足需求的函数
def 函数名(参数):
函数的功能实现流程
自定义函数分为有参函数和无参函数两种
自定义函数调用方式:函数名(实际传入的参数)
例:def turnName(name,game):
Print(“我是” + name + “,我喜欢” + game)
turnName(“李白”, “作诗”) à “我是李白,我喜欢作诗”
自定义函数的参数可以 默认值,如果要设置默认值,那么这个参数必须要写在最后面
def test(name, age, height, weight, sex = “男”):
函数执行的代码
上面这个函数,可以看到,最后的sex = “男”,表示name, age, height, weight这几个参数在调用函数时必须传值,而sex可以省略如果省略,他会默认等于“男”
return 关键字:表示在函数内部,将制定内容返回给函数的调用者,可以用一个变量来接收
比如我们调用列表的index()方法,可以获取到某个指定元素在列表中的索引:
resList = [“苹果”, “香蕉”, “栗子”, “大米”]
Idx = resList.index(“栗子”) à 2
#变量类型:
全局变量,在整个python文件顶格创建的变量,在代码的任何一个地方都可以使用;
局部变量,在自定义函数或者某些代码的内部创建的变量,只能在函数内部使用,外面访问不到
global: 可以将局部变量转换为全局变量使用。
#文件操作:
1. 打开文件: f1 = open(“文件名“, 操作模式)
这里表示以指定的操作模式打开某个文件,取名为f1
操作模式有两种:一种为 r :表示只读,就是对于这个文件,你只能读取其中的内容,不能往里面写入新的数据; 一种为 a :表示读写,就是对于这个文件 ,你在读取内容的同时,也可以往里面写入内容。
2. 读取文件内容:lines = f1.readlines()
readlines()函数表示按行读取某个文件中的内容,会将其转换成一个列表
3. 往文件中写入内容:若要往文件中写入数据,f1 = open(“文件名“, 操作模式)这里的操作模式一定要写成 a: f1 = open(“文件名“, “a”) 表示读写模式
text = “这是要写入文件的内容”
f1.write(text) write可以将制定的字符串写进对应文件的最后面,注意,要写入的内容,格式必须为字符串
#python类 及 类的对象:
类:某种拥有大部分共同属性特质的集合体
对象:某种类的一个特定的实体
类的创建关键字:class
例子:人类
class People():
def __init__(self, name, sex, age):
self.name = name
self.sex = sex
self.age = age
def returnName(self):
return self.name
people1 = People(“李白”,“男”,18)
name = people1.returnName()
上面这个例子中:
1. class People() 是类的创建格式,People表示类的类名
2. def __init__()是类的初始化方法,当我们创建一个类的对象的时候,会自动执行该函数,
一定要注意,init前后是两个“_”,self.name = name 表示我创建的对象的名字等于你传进来的这个名字,是对类的属性进行初始化赋值的。
初始化方法__init__,是对这个类创建的对象进行初始化赋值,self不用管,他没有什么实际意义,但凡前面写上“self.”的参数,一定是init方法中初始化过的参数。
3. returnName(self) 是类中其他的方法,写的self也是没有什么实际意义的,在这个方法中要使用这个人的属性,那就必须使用“self.”来调用
4. people1 = People(“李白”,“男”,18) 这个是创建类对象的方法,和t1 = turtrle.Turtle()一样,相当于创建了一个真实的人,并且给这个人添加了他自己的属性,传值的时候,不用管self,在写好这个方法后,开始执行,他会自定执行init方法,对这人的进行初始化赋值。
5. name = people1.returnName(),用创建出来的人类的这个对象people1 来调用这个类的方法。
6. 可以看到,4,5中不论是创建对象,或者是调用方法,对于self都没有任何的传值操作,所以很重要的一点,self只是用来调用init初始化方法中类的属性的。
7. 获取people1这个类对象的属性,使用对象名.属性名的方式获取:nam = people1.name
8. 修改对象的属性值,使用 对象名.属性名 = 新值 的方式来修改 people1.name = “高适”