当前位置: 首页 > news >正文

Python基础语法元素(学习笔记)

实例1:温度转换

# TempConvert.py   #为单行注释   多行注释为: ''' 这里写内容 '''
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("输入格式错误!")

第一节课,老师便是用一个温度转换的实例带我们了解了python的一些基础语法元素,下面是我对这个实例的一些学习:

第1行:input()函数从控制台获得用户输入,返回一个字符串,无论用户输入的是字符还是数字,统一按照字符串类型输出
然后由TempStr这个变量接受输入的字符串

第2行:TempStr[-1]是一个字符串TempStr中的最后一个字符
字符串两种序号体系:(L为字符串长度)
正向递增序号:从0开始,向右依次递增到L-1
反向递减序号:从-1开始,向左一次递减到-L

字符串切片:TempStr[N:M]表示字符串中从N到M(不包含M)的子字符串

['F','f']是一个列表,用来表示一组数据,逗号用于分隔元素,每个元素的类型可以不同,个数也没有限制

第3、6、9行采用了"if-elif-else"类型的分支语句,注意它们后面都有个冒号
表达式由 in 组成,用于判断TempStr中保存的字符串最后一个字符TempStr[-1]是否在一个由'F'或者'f'组成的列表集合中,返回true或false

第4行:eval()函数用于去掉其参数字符串最外侧的一堆单引号或双引号之后,把剩下的部分当作表达式去执行
这里则是将用户的输入(TempStr[0:-1]这个子串)由字符串转换为数值

第5、8行:格式化输出,其中{}是槽,每个槽位置用,format()中的一个参数填充,:.2f表示输出数值取两位小数值

第10行:单参数直接输出字符串或单个变量的值

补充:多参数直接输出,直接输出多个字符串或变量的值,参数之间用逗号分隔,输出后各打印值之间是由一个空格分隔的

程序运行:

 

实例2:Python蟒蛇绘制

这是一个有趣的Python实例,用于理解引用库的Python"生态式"编程方法

第一种库引用方式:import
#第一种库引用方式,import <库名> ,代码可读性好,这样程序就可以调用库名中的所有函数
import turtle
turtle.setup(650,350,200,200) #用来设置主窗体的大小和位置
turtle.penup() #画笔抬起,移到画笔不绘制任何形状,没有参数
turtle.forward(-250) #用来控制画笔向当前行进方向前进一段距离,若参数值为负数,表示向相反方向前进
turtle.pendown() #画笔落下,移动画笔将绘制图形,turtle绘图开始时,默认画笔是落下的
turtle.pensize(25) #有参数时,用来设置画笔宽度;无参数时,返回当前画笔宽度
turtle.pencolor("green") #有参数时,设置画笔颜色,参数也可是颜色对应的RGB数值:turtle.pencolor((r,g,b)) ;无参数时,返回画笔颜色
turtle.seth(-40) #设置绝对角度值改变画笔绘制方向,也可以从海龟角度:turtle.left(angle)、turtle.right(angle)
for i in range(4) : #循环,注意后面有个冒号,其中range(N)表示产生0到N-1个整数序列,共N个;若是range(M,N)表示产生M到N-1的整数序列,共N-M个
    turtle.circle(40,80) #根据半径radius绘制一个extent角度的弧形,其中,radius默认在海龟左侧radius距离的位置,extent默认是360度整圆,即extent为None
    turtle.circle(-40,80)
turtle.circle(40,80/2)
turtle.forward(40)
turtle.circle(16,180)
turtle.forward(40*2/3)
turtle.done() #表示程序完成后,需手工关闭窗体退出
 第二种库引用方式:from <库名> import *
#第二种库引用方式,from <库名> import * ,库中的函数名可能会与用户自定义的函数名冲突
from turtle import *  # *是通配符,表示库中所有函数,调用该库的函数时不再需要使用库名,也可以是from <库名> import <函数名,函数名,...,函数名>
setup(650,350,200,200) #用来设置主窗体的大小和位置
penup() #画笔抬起,移到画笔不绘制任何形状,没有参数
forward(-250) #用来控制画笔向当前行进方向前进一段距离,若参数值为负数,表示向相反方向前进
pendown() #画笔落下,移动画笔将绘制图形,turtle绘图开始时,默认画笔是落下的
pensize(25) #有参数时,用来设置画笔宽度;无参数时,返回当前画笔宽度
pencolor("green") #有参数时,设置画笔颜色,参数也可是颜色对应的RGB数值:turtle.pencolor((r,g,b)) ;无参数时,返回画笔颜色
seth(-40) #设置绝对角度值改变画笔绘制方向,也可以从海龟角度:turtle.left(angle)、turtle.right(angle)
for i in range(4) : #循环,注意后面有个冒号,其中range(N)表示产生0到N-1个整数序列,共N个;若是range(M,N)表示产生M到N-1的整数序列,共N-M个
    circle(40,80) #根据半径radius绘制一个extent角度的弧形,其中,radius默认在海龟左侧radius距离的位置,extent默认是360度整圆,即extent为None
    circle(-40,80)
circle(40,80/2)
forward(40)
circle(16,180)
forward(40*2/3)
done() #表示程序完成后,需手工关闭窗体退出
 第三种库引用方式:import <库名> as <库别名>
#第三种库引用方式,import <库名> as <库别名>,避免了命名冲突,又使代码可读性好,结合了上面两种方式的优点
import turtle as t
t.setup(650,350,200,200) #用来设置主窗体的大小和位置
t.penup() #画笔抬起,移到画笔不绘制任何形状,没有参数
t.forward(-250) #用来控制画笔向当前行进方向前进一段距离,若参数值为负数,表示向相反方向前进
t.pendown() #画笔落下,移动画笔将绘制图形,turtle绘图开始时,默认画笔是落下的
t.pensize(25) #有参数时,用来设置画笔宽度;无参数时,返回当前画笔宽度
t.pencolor("green") #有参数时,设置画笔颜色,参数也可是颜色对应的RGB数值:turtle.pencolor((r,g,b)) ;无参数时,返回画笔颜色
t.seth(-40) #设置绝对角度值改变画笔绘制方向,也可以从海龟角度:turtle.left(angle)、turtle.right(angle)
for i in range(4) : #循环,注意后面有个冒号,其中range(N)表示产生0到N-1个整数序列,共N个;若是range(M,N)表示产生M到N-1的整数序列,共N-M个
    t.circle(40,80) #根据半径radius绘制一个extent角度的弧形,其中,radius默认在海龟左侧radius距离的位置,extent默认是360度整圆,即extent为None
    t.circle(-40,80)
t.circle(40,80/2)
t.forward(40)
t.circle(16,180)
t.forward(40*2/3)
t.done() #表示程序完成后,需手工关闭窗体退出

上面三种方式的运行结果都是一样的。

程序运行:

 

以上就是我对本章的学习,希望能帮助到各位同志,若有错误之处欢迎评论区留言,谢谢! 

相关文章:

  • 李泽湘和中国硬科技创新十年 | 媒体报道
  • 高并发电商商详网关系统设计:架构、优化与实战
  • SQL Server 锁类型介绍
  • c++ primer 阅读手记 第五章
  • C++中使用CopyFromRecordset将记录集拷贝到excel中时,如果记录集为0个,函数崩溃,是什么原因
  • 基于ngnix配置本地代理到对应服务器
  • 使用Pygame构建贪吃蛇游戏:从零开始的Python游戏开发之旅
  • leetcode 46 全排列 | 回溯
  • Selenium 简单入门操作示例
  • Oracle-rman restore遭遇RMAN-03002与ORA-19563
  • Linux实现生产者消费者模型(基于阻塞队列)
  • VideoGrain:ICLR2025收录,无需训练,实现细粒度多层次视频编辑
  • MySQL 创建数据库
  • ESP32-S3-N16R8的麦金塔小智AI机器人及配套游戏机(教程及相关固件)
  • SpringMVC请求与响应深度解析:从核心原理到高级实践
  • Java并发编程2(锁-Sychronized)
  • Linux: 静态库和动态库
  • 在 Linux(Ubuntu / CentOS 7)上快速搭建我的世界 MineCraft 服务器,并实现远程联机,详细教程
  • 【C语言】深入理解指针(1)
  • Docker应用部署之mysql篇(day5)
  • 4月份全国93个国家气象站日最高气温达到或突破极值
  • 促进产销对接,安徽六安特色产品将来沪推介
  • 上海“生育友好岗”已让4000余人受益,今年将推产假社保补贴政策
  • 当代视角全新演绎,《风雪夜归人》重归首都剧场
  • 财政部、证监会:加强对会计师事务所从事证券服务业务的全流程监管
  • 韩国对华中厚板征收临时反倾销税