小黑子的python入门到入土:第三章

python零基础入门到入土3.0

  • python系列第三章
    • 1. 字符串的表示方式
      • 1.1 字符串里的转义字符
    • 2. 字符串的下标和切片
      • 2.1 下标 即索引
      • 2.2 切片
    • 3. 格式化字符串 format()
    • 4. 内置函数
      • 4.1 abs() 求绝对值
      • 4.2 divmod() 整除返回一对商和余数
      • 4.3 pow() 用于乘方运算
      • 4.4 round() 四舍五入
      • 4.5 input() 用户输入
      • 4.6 print() 输出打印
    • 5. 函数的介绍
      • 5.1 函数调用时注意的事项
      • 5.2 函数的参数
      • 5.3 函数中参数的类型
      • 5.4 函数中的不定长参数
      • 5.5 函数的返回值
      • 5.6 匿名函数
      • 5.7 回调函数
      • 5.8 闭包函数
      • 5.9 函数的作用域
    • 6. 海龟程序 turtle
      • 6.1 海龟的 forward前进 和 backward后退
      • 6.2 海龟的 right 右转 和 left 左转
      • 6.3 海龟的 goto或setpos或setposition 指定位置
      • 6.4 海龟的 set 设置坐标 和setheading或seth 转方向
      • 6.5 海龟的 home 重置 和 circle 画圆
      • 6.6 海龟的 dot 画点
      • 6.7 海龟的 stamp 绘制印章 和 clearstamp 清除印章
      • 6.8 海龟的 clearstamps 清除多个印章
      • 6.9 海龟的 undo 撤销动作 和 speed 调速
      • 6.10 海龟案例
    • 7. 海龟的状态
      • 7.1 position或pos 获取海龟的位置 和 towards 获取坐标角度
      • 7.2 xcor 获取位置x坐标 和 ycor 获取位置y坐标
      • 7.3 heading 获取朝向 和 distance 获取海龟与坐标的距离
      • 7.4 showturtle或st 显示海龟 和 hideturtle或ht 隐藏海龟
      • 7.5 isvisible 判断海龟是否可见
      • 7.6 shape 改变海龟形状和 getshapes 获得海龟形状
      • 7.7 degrees 设置角度
      • 7.8 radians 设置弧度
    • 8. 画笔的控制
      • 8.1 pendown或pd或down 落笔 和 penup或pu或up 抬笔
      • 8.2 pensize或width 画笔粗细 和 isdown 判断画笔是否落下
      • 8.3 colormode 颜色模式
      • 8.4 pencolor 设置画笔颜色
      • 8.5 fillcolor 设置填充颜色
      • 8.6 color 同时设置画笔和填充颜色
      • 8.7 filling 判断填充状态
      • 8.8 clear 清除海龟绘制内容、 reset 重置海龟状态 和 wirte 在当前海龟位置书写文字
    • 9. 与绘制窗口有关
      • 9.1 bgcolor 设置绘图窗口的背景颜色 和 bgpic()设置绘图窗口的背景图片
      • 9.2 window_height 返回绘制窗口高度 和 window_width 返回绘制窗口宽度
      • 9.3 setup 设置绘图窗口大小和位置
      • 9.4 title 设置窗口标题 和 textinput 弹出文本输入对话框
      • 9.5 numinput 弹出数字输入的对话框 和 bye 关闭窗口

python系列第三章

1. 字符串的表示方式

在Python里,可以使用一对单引号、对双引号或者一对三个双引号、一对三个单引号

#如果字符串里还有双引号,外面就可以使用单引号
m = 'xiaoming said : "I am xiaoming"'
n = "I'm xiaoming"
p = """ xiaomig said : "I am xiaoming" """

1.1 字符串里的转义字符

  • 字符串里的转义字符 \
  • \' ==>显示一个普通的单引号
  • \" ==>显示―个普通的双引号
  • \n ==>表示一个换行
  • \t ==>表示显示一个制表符
  • \\ ==>表示一个普通的反斜线

在字符串的前面添加r在Python里表示的是原生字符串

x1 = 'hello \t world'
print(x1)

x2 = 'good mor \\ ning'
print(x2)

x3 = r'hello \teacher'
print(x3)

小黑子的python入门到入土:第三章_第1张图片

2. 字符串的下标和切片

2.1 下标 即索引

可迭代对象: str list tuple dict set range都可以便利

str list tuple可以通过下标来获取或者操作数据

在计算机里,下标都是从0开始的。
h
可以通过下标来获取或者修改指定位置的数据

字符串是不可变的数据类型
案例:
小黑子的python入门到入土:第三章_第2张图片

2.2 切片

切片就是从字符串里复制一段指定的内容,生成一个新的字符串

切片语法m[ start: end :step]
包合start,不包含end
step指的是步长,理解为间隔。 每隔step-1个取一次
step 为负数,表示从右往左获取

案例:

m = 'sahdghjgbdnflvkreoijtiuqwrwetre'
print(m[5])  # m[index]==>获取指定下标上的数据

print(m[2:9])  # 包合start,不包含end
print(m[2:])  # 如果只设置了start,会”截取"到最后
print(m[:9])  # 如果值设置了end,会从头开始"截取"
print(m[3:15])

print(m[3:15:2])  # dhgdfv
print(m[::])  # 从头到尾复制一遍
print(m[::-1]) # step 为负数,表示从右往左获取

print(m[-9:-5]) # start和end如果是负数,表示从右边数

小黑子的python入门到入土:第三章_第3张图片

3. 格式化字符串 format()

小黑子的python入门到入土:第三章_第4张图片

小黑子的python入门到入土:第三章_第5张图片

小黑子的python入门到入土:第三章_第6张图片
小黑子的python入门到入土:第三章_第7张图片
小黑子的python入门到入土:第三章_第8张图片
小黑子的python入门到入土:第三章_第9张图片

4. 内置函数

4.1 abs() 求绝对值

小黑子的python入门到入土:第三章_第10张图片

4.2 divmod() 整除返回一对商和余数

小黑子的python入门到入土:第三章_第11张图片

4.3 pow() 用于乘方运算

小黑子的python入门到入土:第三章_第12张图片

4.4 round() 四舍五入

小黑子的python入门到入土:第三章_第13张图片

4.5 input() 用户输入

小黑子的python入门到入土:第三章_第14张图片
小黑子的python入门到入土:第三章_第15张图片

4.6 print() 输出打印

小黑子的python入门到入土:第三章_第16张图片

5. 函数的介绍

函数的语法:

def函数名(参数1,参数2,参数3…): 函数体

  • 1.使用def关键字声明函数
  • 2.函数有两部分组成:声明部分和实现部分
  • 3.函数名要遵循标识符的命名规则,尽量做到见名知意
  • 4.函数定义时的参数,叫做形式参数(形参)可以写也可以不写,取决于功能的需求
  • 5.函数体要缩遇
  • 6.函数要想使用,必须调用,调用的格式:函数名()
  • 7.函数的调用必须在函数定义之后

5.1 函数调用时注意的事项

1.在同一个文件中,若出现了定义的函数名相同的情况,后面定义的函数会覆盖前面定义的函数

2.若将函数名赋值给了一个变量,那还可以通过该变量调用函数

3.函数必须先定义,然后才能调用.函数调用必须在函数定义的下方

4.在项目中一个函数可以多次调用

5.2 函数的参数

1.定义函数时的传递的参数叫做形式参数,也叫做形参

2.调用函数时传递的参数叫做实际参数,也叫做实参.在去调用函数的时候,实参会把形参替换.

3.若在定义函数时,有形参,在调用时,函数必须传入实参.并且实参的数量和形参的数量保持一致

4.在函数中形参的名字和实参的名字可以一样,(本质上两者开辟的是不同的内存)

5.3 函数中参数的类型

a.必须顺序参数
在调用函数的时候,必须以正确的顺序传参,参数数量保持一致

def student(name, age):
    print("我的姓名是:%s,年龄是:%d" % (name, age))

# student(32, "王麻子") 顺序不同报错
student("王麻子",32) # 执行

b.关键字参数
使用关键字参数允许函数调用的时候,实参的顺序和形参的顺序不一致,可以使用关键字进行自动匹配

def student(name, age):
    print("我的姓名是:%s,年龄是:%d" % (name, age))

student(age=32,name="王麻子")

c.默认参数
1.在定义函数时,若某个参数没有传递,但是定义了默认参数,会直接使用默认参数,若传递了参数,则会把默认参数替换

2.若函数设置了默认参数,并且该函数有多个参数,一般把默认参数放在参数列专的最后面

def get_sum(num1,num2,num3=21):
    print(num1+num2+num3)

get_sum(12,34,56) #102
get_sum(12,34) #67

5.4 函数中的不定长参数

不定长参数:
1.*args:用来接收多个位置参数,得到的是一个元组

def demo(*args):
    print(*args)

demo("hello", 12, 34, 5, 65)
demo(43, 45, 6)

小黑子的python入门到入土:第三章_第17张图片
2.在定义函数时,若函数中有多个参数,其中某一个参数是不定长参数,一般把不定长参数放在参数列表的最后面\

def test(name,*args):
    print(name,*args)

test("麻瓜",12,34,56,86,43,"hello")

小黑子的python入门到入土:第三章_第18张图片
3. **kwargs:用来接收多个关键字参数,得到的是一个字典︰在传输参数的时候,必须是 key=value的形式传输

def fn(**kwargs):
    print(kwargs)
fn(x=12, y=34, z=43)

小黑子的python入门到入土:第三章_第19张图片

5.5 函数的返回值

  • 函数返回值需要使用return关键字进行返回.
  • 函数在哪里调用,就把结果返回到了哪里.
  • 若想使用返回的结果,可以定义变量接收,也可以直接输出。

2.return后面的代码不会执行

3.函数中若没有return关键字或者没有数据返回,则默认返回是None

4.return关键字一次性返回多个数据.多个数据之间使用,隔开,结果以元组的形式返回

def test():
    return "返回值"
    print("123")
print(test()) # 不会打印123

def demo():
    return
print(demo()) #None

def demo1():
    print("你好啊!")
print(demo1())

def fn1():
    return 12,34,45 #None

小黑子的python入门到入土:第三章_第20张图片

5.6 匿名函数

像这种函数都是有名字的函数

def test():
    print("有名字的函数")
print(test())

匿名函数:是一个表达式,比普通函数简单使用lambada定义的表达式

lambada表达式中包含了参数,实现体,返回值

num1 = lambda num: num ** 2
print(num1(3))

小黑子的python入门到入土:第三章_第21张图片

5.7 回调函数

回调函数:把一个函数(a)作为一个参数传递到另一个函数(b)中去,那么这个函数a我们就叫做回调函数。

小黑子的python入门到入土:第三章_第22张图片

def add(x,y):
    print(x+y)

def demo(x,y,func):
    func(x,y)
demo(12,23,add)

小黑子的python入门到入土:第三章_第23张图片

5.8 闭包函数

如果一个函数里面嵌套了另外一个函数,外部的函数叫做外函数,内部的函数叫做内函数

如果在一个外部函数中定义了一个内部函数,并且外部函数的返回值是内部函数,就构成了一个闭包.则这个内部函数就被称为闭包

闭包函数的特点:内部函数可以使用外部函数的变量

闭包函数主要用于装饰函数的实现

def outer(x):
    y = 11
    def inner():
        print("我是闭包函数", x + y)
    return inner  # 注意:这里返回的是函数体,不是函数的调用

fn = outer(7)  # fun ===>inner 函数
fn()  # 就相当于调用了inner 函数

小黑子的python入门到入土:第三章_第24张图片

5.9 函数的作用域

1.if 等分支语句和for in等循环语句不存在作用域的问题,他们里面定义的变量可以在外部直接访问

2.函数内部的变量,在函数的外部不能直接访问

3.函数内部可以直接访问函数外部的变量

num1 = 67
def fn1():
    # 若想再函数的内部直接修改函数外部的变量,需要使用global关键字,将函数内部变量变更为全局变量
    global num1
    num1 = 88
    print(num1)
fn1()
# print(num1) # 67 是在函数内部添加global关键字之前的结果
print(num1)

小黑子的python入门到入土:第三章_第25张图片

6. 海龟程序 turtle

小黑子的python入门到入土:第三章_第26张图片
小黑子的python入门到入土:第三章_第27张图片

import turtle
turtle.forward(200)
turtle.done()

小黑子的python入门到入土:第三章_第28张图片

6.1 海龟的 forward前进 和 backward后退

小黑子的python入门到入土:第三章_第29张图片

6.2 海龟的 right 右转 和 left 左转

小黑子的python入门到入土:第三章_第30张图片

6.3 海龟的 goto或setpos或setposition 指定位置

小黑子的python入门到入土:第三章_第31张图片

6.4 海龟的 set 设置坐标 和setheading或seth 转方向

小黑子的python入门到入土:第三章_第32张图片

6.5 海龟的 home 重置 和 circle 画圆

小黑子的python入门到入土:第三章_第33张图片

6.6 海龟的 dot 画点

小黑子的python入门到入土:第三章_第34张图片

6.7 海龟的 stamp 绘制印章 和 clearstamp 清除印章

小黑子的python入门到入土:第三章_第35张图片

6.8 海龟的 clearstamps 清除多个印章

小黑子的python入门到入土:第三章_第36张图片

6.9 海龟的 undo 撤销动作 和 speed 调速

小黑子的python入门到入土:第三章_第37张图片

6.10 海龟案例

一些画图原理:

小黑子的python入门到入土:第三章_第38张图片
小黑子的python入门到入土:第三章_第39张图片

案例:
1.
小黑子的python入门到入土:第三章_第40张图片
2.
小黑子的python入门到入土:第三章_第41张图片
小黑子的python入门到入土:第三章_第42张图片
3.

import turtle
turtle.shape("turtle")
turtle.color("red")
turtle.left(90)
turtle.forward(200)
turtle.right(90)
turtle.forward(200)
turtle.right(90)
turtle.forward(200)
turtle.right(90)
turtle.forward(200)

turtle.begin_fill()
turtle.circle(100)
turtle.end_fill()
turtle.done()

小黑子的python入门到入土:第三章_第43张图片

import turtle

turtle.shape("turtle")
turtle.color("red")

for i in [0,1,2,3,4]:
    turtle.right(144)
    turtle.forward(200)

turtle.done()

小黑子的python入门到入土:第三章_第44张图片

# 请进小海龟,并设置小海龟的外形和颜色
import turtle

turtle.shape("turtle")
turtle.color("red")


def drawstar(x, y, color):
    turtle.up()
    turtle.goto(x, y)
    turtle.down()
    turtle.color(color)
    for i in [0, 1, 2, 3, 4]:
        turtle.right(144)
        turtle.forward(100)


# 设置小海龟的位置和朝向

# 绘制第一个五角星
drawstar(-200, 200, "blue")

# 再一次设置小海龟的位置和朝向

# 绘制第二个五角星
drawstar(300, 200, "green")

# 继续设置小海龟的位置和朝向,并绘制第三、第四个五角星
drawstar(-200, -200, "red")

drawstar(300, -200, "black")

turtle.up()
turtle.home()
turtle.done()

小黑子的python入门到入土:第三章_第45张图片
6.
小黑子的python入门到入土:第三章_第46张图片
7.小黑子的python入门到入土:第三章_第47张图片

7. 海龟的状态

7.1 position或pos 获取海龟的位置 和 towards 获取坐标角度

小黑子的python入门到入土:第三章_第48张图片

7.2 xcor 获取位置x坐标 和 ycor 获取位置y坐标

小黑子的python入门到入土:第三章_第49张图片

7.3 heading 获取朝向 和 distance 获取海龟与坐标的距离

小黑子的python入门到入土:第三章_第50张图片

7.4 showturtle或st 显示海龟 和 hideturtle或ht 隐藏海龟

小黑子的python入门到入土:第三章_第51张图片

7.5 isvisible 判断海龟是否可见

小黑子的python入门到入土:第三章_第52张图片

7.6 shape 改变海龟形状和 getshapes 获得海龟形状

小黑子的python入门到入土:第三章_第53张图片

7.7 degrees 设置角度

小黑子的python入门到入土:第三章_第54张图片

7.8 radians 设置弧度

小黑子的python入门到入土:第三章_第55张图片

8. 画笔的控制

8.1 pendown或pd或down 落笔 和 penup或pu或up 抬笔

小黑子的python入门到入土:第三章_第56张图片

8.2 pensize或width 画笔粗细 和 isdown 判断画笔是否落下

小黑子的python入门到入土:第三章_第57张图片

8.3 colormode 颜色模式

小黑子的python入门到入土:第三章_第58张图片

8.4 pencolor 设置画笔颜色

小黑子的python入门到入土:第三章_第59张图片
小黑子的python入门到入土:第三章_第60张图片

8.5 fillcolor 设置填充颜色

小黑子的python入门到入土:第三章_第61张图片
小黑子的python入门到入土:第三章_第62张图片
小黑子的python入门到入土:第三章_第63张图片

8.6 color 同时设置画笔和填充颜色

小黑子的python入门到入土:第三章_第64张图片
小黑子的python入门到入土:第三章_第65张图片

8.7 filling 判断填充状态

小黑子的python入门到入土:第三章_第66张图片

8.8 clear 清除海龟绘制内容、 reset 重置海龟状态 和 wirte 在当前海龟位置书写文字

小黑子的python入门到入土:第三章_第67张图片

9. 与绘制窗口有关

9.1 bgcolor 设置绘图窗口的背景颜色 和 bgpic()设置绘图窗口的背景图片

小黑子的python入门到入土:第三章_第68张图片

9.2 window_height 返回绘制窗口高度 和 window_width 返回绘制窗口宽度

小黑子的python入门到入土:第三章_第69张图片

9.3 setup 设置绘图窗口大小和位置

小黑子的python入门到入土:第三章_第70张图片

9.4 title 设置窗口标题 和 textinput 弹出文本输入对话框

小黑子的python入门到入土:第三章_第71张图片

9.5 numinput 弹出数字输入的对话框 和 bye 关闭窗口

小黑子的python入门到入土:第三章_第72张图片

你可能感兴趣的:(python,python,开发语言)