• Python学习笔记


    Python两种编程方式

    • 交互式:对每个输入语句及时运行结果,适合语法练习
    • 文件式:批量性hi性一组语句并运行结果,是编程的主要方式

    Windows开发环境配置

    • 解释器下载地址:IDLE安装教程
    • 编辑器Pycharm:下载地址安装教程注册码
    • 使用实例---温度转换
      • image
      • 代码
          TempStr = input("请输入带有符号的温度值:")
          if TempStr[-1] in ['F','f']:
             C = (eval(TempStr[0:-1]) - 32)/1.8
             print("转换后的温度是{:.2f}C".format(C))
          elif TempStr[-1] in ['C','c']:  
             F = 1.8 * eval(TempStr[0:-1]) + 32
             print("转换后的温度是{:.2f}F".format(F))
          else:
             print("输入格式错误")
        
      • 运行
        • IDLE中点击Run--Run modules
          image
        • Pycharm中
          image

    语法元素

    • 缩进:表达程序的格式框架
      • 缩进是语法的一部分,缩进不正确程序运行错误
      • 是表达代码间包含和层次关系的唯一手段
      • 程序内一致即可,一般用4个空格或1个Tab键
    • 注释
      • #:单行注释
      • ```内容```:多行注释
    • 变量:保存和表示数据的占位符号
      • 命名规则
        • 大小写字母、数字、下划线和汉字等字符及组合
        • 首字符不是数字
        • 不能与保留字符相同
          image
        • 大小写敏感
      • =:为变量赋值
    • 数据类型
      • 数字类型
        • 整数:38、1
        • 浮点数:数学中的实数,带有小数部分
      • 字符串类型:由0个或多个字符组成的有序字符序列
        • 由一对单引号或一对双引号吧表示,如"100,10,100"
        • 字符串序号
          • 分为正向递增序号和反向递减序号
            image
        • 使用[]获取字符串中一个或多个字符
          • 索引:返回字符串中第m个字符,<字符串>[M],如TemStr[-1]
          • 切片:返回字符串中从M开始不到N的这样一段字符子串,<字符串>[M:N],如TemStr[0:-1]
      • 列表类型:由0个或多个数据组成的有序序列
        • 使用[]表示,中间由,分隔元素,如['F','f']
        • 使用in判断一个元素是否在列表中
    • 语句与函数
      • 赋值语句:用=来实现为变量赋值
      • 分支语句
        • ifelifelse构成
        • 每个分支语句最后都有一个::如果条件为真则执行冒号后语句
      • 函数:函数名()
        • 输入函数:input(),获得用户输入的信息,其中的中文只是提示信息不作为输入部分
        • 输出函数:print()
          • 输出格式化
            image
        • 评估函数:eval(),去掉参数最外侧引号并执行余下语句
          image

    Python基本图形绘制

    turtle库

    • 是turtle绘图体系的Python实现,Python语言的标准库之一
    • 原理:即海龟在画布上走过的轨迹形成了绘制的图形
    • 库引用:imprt turtle
    • 使用函数:库名.函数(函数参数)

    turtle绘图窗体

    • 窗口最小单位是像素
    • 函数:turtle.setup(width,height,startx,starty)设置窗体大小及位置(不是必需的,其中的startx与starty是窗体左上角距屏幕左上角的位置)
      image

    turtle坐标体系

    • 空间坐标:turtle.goto(x,y)绝对坐标
      image
    • 海龟坐标
      image
      • 前进:turtle.fd(d)
      • 后退:turtle.bk(d)
      • 以左侧某一点为圆心:turtle.circle(r半径,angle弧度)
        image
    • 角度坐标
      • turtle.seth(angle角度)改变海龟行进方向
      • image
    • 海龟角度
      • 向左行进方向:turtle.left(angle)
      • 向右行进方向:turtle.right(angle)

    色彩体系

    • 采用RGB色彩模式
    • RGB每色取值范围0-255整数或0-1小数
    • 常用RGB色彩
      image
      image
    • turtle.colormode(mode)默认为小数值
      • 1.0:RGB小数值模式
      • 255:RGB整数值模式

    画笔控制

    • 成对出现
    • turtle.penup():抬起画笔,海龟运行轨迹不在画布上形成图案
    • turtle.pendown():落下画笔,海龟爬行
    • turtle.pensize(width)或者turtle.width(wodth):画笔宽度,海龟的腰围
    • turtle.pencolor(color):画笔颜色,color为颜色字符串或者rgb值

    运动控制函数

    • 控制海龟行进:走直线&走曲线
    • 走直线:turtle.fd(d)或者turtle.forward(d)向前行进
    • 走曲线:turtle.circle(r半径,extent弧度),r默认圆心在海龟左侧r距离的位置

    循环语句

    • 按照一定次数循环执行一组语句
    • 格式
        for 变量 in range(函数名):
            被循环执行的语句
      
    • range()函数
      • range(N):0~N-1
      • range(M,N):M~N-1
      • range(M,N,K):M~N-1且以K为步长

    实例分析

    • 绘制蟒蛇代码
        import turtle
      
        turtle.setup(650, 350, 200, 200) # 设置窗体大小
        turtle.penup()  # 抬起画笔
        turtle.fd(-250)  # 倒退
        turtle.pendown()  # 落下画笔开始画
        turtle.pensize(25)  # 设置画笔大小
        turtle.pencolor("purple")  # 设置画笔颜色
        turtle.seth(-40)  # 设置行进方向
        for i in range(4):  # 循环四次完成身子部分
            turtle.circle(40, 80)  # 先以40为半径画80度的圆
            turtle.circle(-40, 80)  # 再以方向的40为半径画80度的圆
        turtle.circle(40, 80 / 2)  # 以40为半径、40度的圆
        turtle.fd(40) # 行进40度 完成脖子部分
        turtle.circle(16, 180)  # 以16为半径、180度的圆
        turtle.fd(40 * 2 / 3)  # 行进 完成头部
        turtle.done()  # 需要自行操作才能关闭窗体
      
    • 运行截图
      image

    基本数据类型

    数字类型

    • 整数类型
      • 与数学中的整数一致,可正可负,没有取值范围限制
      • pow(x,y)函数:计算xy,想算多大算多大
      • 四种进制表示形式
        image
    • 浮点数类型
      • 带有小数点及小数的数字,取值范围:-10^308~10^308,精度数量级:10^-16
      • 运算存在不确定尾数,不是bug
      • round(x,d)函数:对x四舍五入,d为小数截取位数,浮点数间运算及比较用round()函数辅助
      • 浮点数的科学计数法
        • 使用eE作为幂的符号,以10为基数
        • <a>e<b>:a*10b
    • 复数类型
      • a+bj :a为实部,b为虚部,j=√-1

    数值运算操作符

    • 操作符

      操作符及使用 描述
      x+y 加,x与y之和
      x-y 减,x与y之差
      x*y 乘,x与y之积
      x/y 除,x与y之商
      x//y 整数除,x与y之整数商
      +x x本身
      -y x的负值
      x%y 余数
      x**y 幂运算,x的y次幂
      x**y 当y是小数时,开方运算
    • 一些运算函数

      • abs(x):x的绝对值
      • divmod(x,y):商余,同时输出商和余数(x//y,x%y)
      • pow(x,y):幂运算
      • pow(x,y,z):幂余,(x**y)%z
      • round(x,d):对x取d位小数
      • max(x1,...,xn)
      • min(x1,...,xn)
      • int(x):将x变为整数
      • float(x):将x变为浮点数
      • complex(x):将x变为复数
    • 实例

      • 工作日模式每天努力到多少相当于365天模式每天1%的努力
      • 代码
        def dayUp(df):
            dayup = 1
            for i in range(365):
                if i % 7 in [6,0]:
                    dayup = dayup * (1-0.01)
                else:
                    dayup = dayup * (1+df)
            return dayup
        dayfactor = 0.01
        while dayUp(dayfactor) < 37.78:
            dayfactor +=0.001
        print("工作日的努力参数是:{:.3f}".format(dayfactor))
        
      • 结果:0.019

    字符串类型

    • 表示方法
      image

    • 序号
      image

    • 切片使用
      image

    • 转义符
      image

    • 字符串操作符
      image

    • 一些处理函数

      • len(x):返回字符串x的长度
      • str(x):任意类型x多对应的字符串形式
      • hex(x):整数x的十六进制小写形式字符串
      • oct(x):整数x的八进制小写形式字符串
      • chr(u):将Unicode编码返回对应字符串
      • ord(x):返回x对应的Unicode编码
    • 一些处理方法

      方法及使用 描述
      str.lower()或str.upper() 返回字符串的小写或大写形式
      str.split(sep=None) 返回一个列表,由str根据sep被分隔的部分组成
      str.count(sub) 返回子串sub在str中出现的次数
      str.replace(old,new) 所有old字串被替换为new
      str.center(width[,fillchar]) 字符串str根据宽度width居中,fillchar可选其为填充字符
      str.strip(chars) 从str中去掉其左侧和右侧chars中列出的字符
      str.join(iter) 在iter变量除最后元素外每个元素后增加一个str
    • 字符串的格式化

      • 使用.format()方法
      • { }
        image
        image
        image

    Python处理时间

    time库

    • 计算机时间的表达
    • 提供获取系统时间并格式化输出功能
    • 提供系统级精确计时功能,用于程序性能分析
    • 导入库:import time
    • 调用相关函数:time.b()

    三类函数

    • 时间获取:
      • time():获取当前时间戳,即计算机内部时间值,是一个浮点数
      • ctime():获取当前时间并以可读方式表示,返回字符串
      • gmtime():表示为计算机可处理的时间格式
    • 时间格式化:
      • strftime(tpl,ts):tpl定义输出效果,ts为时间类型变量
      • strptime(str,tpl):str是字符串形式的时间值,tpl为定义的输出效果
    • 程序计时应用
      • perf_counter() :返回一个CPU级别的精确时间计数值,单位为秒
      • sleep(s):s为休眠的时间,单位是秒,可以是浮点数
    • 实例
      • 文本进度条:采用字符串方式打印可以动态变化的文本进度条,进度条需要能在一行中逐渐变化
      • 代码
       import time
       scale = 50
       print("执行开始".center(scale//2,"-"))
       start = time.perf_counter()
       for i in range(scale+1):
           a = '*' * i # *显示的个数
           b = '.' * (scale - i) # .显示的个数
           c = (i/scale)*100 # 打印百分比
           dur = time.perf_counter() - start # 打印出所消耗时间
           print("
      {:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur),end="")
           time.sleep(0.1)
       print("
      "+"执行结束".center(scale//2,'-'))
      
      • 效果
        image

    程序的控制结构

    分支结构

    • 单分支:if 条件:
    • 二分支:if : else:
    • 多分支:if - elif - else
    • 异常处理
        try:
            语句1
        except:
            语句2
      
        try:
            语句1
        except:
            语句2
        else: # 不发生异常时执行
            语句3
        finally: # 一定执行
            语句4
      
    • 实例
      • 身体质量指数BMI:BMI=体重(kg)/身高^2(m2)
        image
      • 代码
       height,weight = eval(input("请输入身高(米)和体重(公斤)[逗号隔开]:"))
       bmi = weight / pow(height,2)
       print("BMI数值为:{:.2f}".format(bmi))
       who,nat = "",""
       if bmi < 18.5:
           who,nat = "偏瘦","偏瘦"
       elif 18.5 <= bmi < 24:
           who,nat = "正常","正常"
       elif 24 <= bmi < 25:
           who,nat = "正常","偏胖"
       elif 25 <= bmi < 28:
           who,nat = "偏胖","偏胖"
       elif 28 <= bmi <30:
           who,nat = "偏胖","肥胖"
       else:
           who,nat = "肥胖","肥胖"
       print("BMI指标为:国际'{0}',国内'{1}'".format(who,nat))
      

    循环结构

    • 遍历循环
        for <循环变量> in <遍历结构>:
            语句块
      
      • 计数循环:for i in range(N):
      • 列表遍历循环:for item in ls:ls为一个列表
      • 文件遍历循环:for line in fi:fi为文件标识符,遍历其每行,产生循环
    • 无限循环
        while <条件>:
            <语句块>
      

    循环控制保留字

    • continue:结束当次循环
    • break:结束整个循环

    Python使用随机数

    random库

    • 导入:import random
    • 八个函数
      • 基本随机函数
        • seed(a):初始化给定的随机数种子,默认为系统当前时间
        • random():生成[0.0-1.0]之间的随机小数
      • 扩展随机函数
        • randint(a,b):生成一个[a,b]之间的整数
        • randrange(m,n,k):生成一个[m,n)之间以k为步长的随机整数
        • getrangbits(k):生成一个k比特长的随机整数
        • uniform(a,b):生成[a,b]之间的随机小数
        • choice(seq):从序列seq中随机选择一个元素
        • shuffle(seq):将序列seq中元素随机排列,返回打乱后的序列
  • 相关阅读:
    linq 查询 过滤数据中某个值是否在数组中
    Nginx 摘要
    Unity调用外部摄像头,全屏显示摄像头画面
    Vuforia切换回识别场景后黑屏解决
    Unity3d通过脚本生成apk
    EF6 CodeFirst连接MySql 报nvarchar('max')错误解决办法
    UNITY_MATRIX_MVP和UnityObjectToClipPos
    Unity的stateMachineBehaviour
    U3D加载服务器上的assetbundle
    jquery解析xml,获取xml标签名
  • 原文地址:https://www.cnblogs.com/besty-zyx/p/10388707.html
Copyright © 2020-2023  润新知