基本语法元素

格式框架

  • 缩进表达程序的格式框架

    • 严格明确,缩进是语言的一部分,缩进不正确程序运行错误
    • 所属关系,表达代码间包含和层次关系的唯一手段
    • 长度一致,程序内一致即可,一般用4个空格或1个tab
  • 注释

    • #开头,单行注释
    • '''多行注释

命名与保留字

  • 变量

    • 用于保存和表示数据的占位符号
  • 命名

    • 关联标识符的过程

      • 命名规则,大小写字母,数字,下划线和汉字等字符及组合
      • 注意事项:大小写敏感,首字符不能是数字,不与保留字相同
  • 保留字

    • 被编程语言内部定义并保留使用的标识符(33个)

数据类型

  • 供计算机程序理解的数据形式

语句与函数

  • 赋值语句

    • 由赋值符号构成的一行代码
  • 分支语句

    • 由判断方向运行程序运行方向的语句
  • 函数

    • 根据输入参数产生不同输出的功能过程

输入与输出

  • 输入函数input()

    • <变量>=input(<提示信息字符串>)
  • 输出函数print()

    • print(<拟输出字符串和字符串变量>)
    • {}->槽,{:.2f}表示填充时取小数后两位
  • 评估函数eval()

    • 去掉参数最外侧引号并执行余下语句的函数

基本图形绘制

turtle的使用

  • turtle的绘图窗体

    • turtle.setup(width,height,startx,starty)
  • turtle空间坐标体系

    • 绝对坐标

      • turtle.goto(x,y)
    • 海龟坐标

      • turtle.circle(r,angle)
      • turtle.fd(d)
      • turtle.bk(d)
  • turtle角度坐标体系

    • 绝对角度

      • turtle.seth(angle)

        • seth()改变海龟行进方向
        • seth()只改变方向但不行进
        • angle为角度
    • 海龟角度

      • turtle.left(angle)
      • turtle.right(angle)
  • turtle的RGB色彩模式

    • 默认采用小数值,可切换为整数值

      • turtle.colormode(mode)

        • 1.0小数值模式
        • 255整数值模式
  • 导入

    • import<函数名>

      • <库名>.<函数名>(<函数参数>)

        • 不会出现函数重名问题
  • from<库名>import<函数名>/from<库名>import *

    • <函数名>(<函数参数>)
  • import<库名> as <库别名>

    • <库别名>.<函数名>(<函数参数>)
  • turtle画笔控制函数

    • turtle.penup()别名turtle.pu()画笔抬起,不形成图案
    • turtle.pendown()别名turtle.pd()画笔落下,形成图案
    • turtle.pensize(width)别名turtle.width(width)画笔宽度
    • turtle.pencolor(color)画笔颜色
  • turtle运动控制函数

    • turtle.forward(d) 别名 turtle.fd(d)直线
    • turtle.circle(r,extent=None)曲线
  • turtle方向控制函数

    • turtle.setheading(angle)别名turtle.seth(angle)绝对角度
    • turtle.left(angle)左转
    • turtle.right(angle)右转

基本数据类型

整数类型

  • 十进制
  • 二进制:以0b或0B开头
  • 八进制:以0o或0O开头
  • 十六进制:以0x或0X开头

浮点数类型

  • -10^308-10^308
  • 不确定尾数,round()函数辅助比较大小
  • <a>e<b>,表示a*10^b

复数类型

  • a+bj

数值运算操作符

  • +,-,*,/(产生浮点数结果),//(整数除)

  • +x(x本身),-y(y负值),x%y(余数),x**y(幂运算)

  • x op = y

  • 数据类型逐渐变宽

  • 数值运算函数

    • abs(x)绝对值
    • divmod(x,y)商余操作,输出商和余数
    • pow(x,y[,z])幂余
    • round(x[,d])四舍五入,d是保留小数位数
    • max(x1,x2…,xn)最大值
    • min(x1,x2,…xn)最小值
    • int(x)变整
    • float(x)变为小数

字符串类型及操作

  • 2类共四种表达方式

    • ','','''
    • 多行
    • 单行
  • 序号

    • 正向递增序号,0开始
    • 方向递减序号,-1开始
  • 切片高级用法

    • <字符串>[M:N],m缺失表示至开头,n缺失表示至表尾

    • <字符串>[M:N:K],根据步长对字符串切片

      • [::-1]字符串取反
    • 转义符\

      • 表达特定字符的本意
  • 字符串操作符

    • x+y

      • 连接字符串x和y
    • nx或xn

      • 复制n次字符串x
    • x in s

      • 如果x是s的字串,返回True,否则返回False
  • 字符串处理函数

    • len(x)

      • 返回字符串的长度
    • str(x)

      • 任意类型x所对应的字符串形式
    • hex(x)或oct(x)

      • 十六进制或八进制形式字符串
    • chr(u)

      • u为Unicode编码,返回其对应的字符
    • ord(x)

      • x为字符,返回其对应的Unicode编码
  • 字符串处理方法

    • str.lower()或str.upper()

      • 返回字符串的副本,全小写/大写
    • str.split(sep=None)

      • 返回一个列表,有sep分割
    • str.count(sub)

      • 返回子串sub在str中出现的次数
    • str.replace(old,new)

      • 返回副本,所有old被替换为new
    • str.center(width,[.fillchar])

      • 根据宽度居中,fillchar可选
    • str.strip(chars)

      • 从str中去掉在其左侧和右侧chars中列出的字符
    • str.join(iter)

      • 在iter变量除最后元素外每个元素后增加一个str
  • 字符串类型的格式化

    • {}槽

      • {<参数序号>:<格式控制标记>}

        • 填充,对齐(<左对齐,>右对齐,^居中对齐),宽度
        • <,>(数字的千位分隔符),<.精度>,<类型>

time库的使用

  • 获取时间

    • time()

      • 获取当前时间的时间戳,浮点数形式
    • ctime()

      • 获取当前时间的易读方式
    • gmtime()

      • 获取当前时间,表示为计算机可处理的时间格式
  • 时间格式化

    • strftime(tpl,ts)

      • tpl是格式化模板字符串,用来定义输出效果,ts是计算机内部时间类型变量
    • strptime(str,tpl)

      • 字符串转为为可以处理的时间
  • 程序计时

    • 测量时间

      • perf_counter()
    • 产生时间

      • sleep(s)

        • 休眠时间,s可以是浮点数

程序的控制结构

程序的分支结构

  • 单分支结构

    • if:
  • 二分支结构

    • if:else:
    • 紧凑形式:适用于简单表达式的二分之结构
    • <表达式1>if<条件>else<表达式2>
  • 多分支结构

    • if:elif:else:
  • 条件判断及组合

    • and(逻辑与),or(逻辑或),not(逻辑非)
  • 异常处理

    • try: except:
    • try: except: else: finally:

程序的循环结构

  • 遍历循环

    • for <循环变量> in <遍历结构>: <语句块>

      • 计数循环
      • 字符串遍历循环
      • 列表遍历循环
      • 文件遍历循环
  • 无限循环

    • while <条件>: <语句块>
  • 循环控制保留字

    • break,continue
  • 循环的扩展

    • 循环语句后加else:

      • 没有退出即执行else语句块

random库的使用

  • seed(a=None)初始化给定的随机数种子,默认为系统时间
  • random()生成一个(0.0,1.0)之间的随机小数
  • randint(a,b)生成a,b之间的整数
  • randrange(m,n[,k])生成一个[m,n]之间以k为步长的随机整数
  • getrandbits(k)生成一个k比特长的随机整数
  • uniform(a,b)生成一个[a,b]之间的随机小数
  • choice(seq)从序列seq中随机选择一个元素
  • shuffle(seq)将序列seq中元素随机排序,并返回打乱后的序列

组合数据类型

集合类型