Chapter 02 Python基础-1

1.Python语法

1.变量

从实例看Python代码:

        输入圆的半径,计算圆面积,若面积大于等于10,则输出具体数值,若面积小于10,则只输出整数值。

分析:

1.圆面积计算需要用到PI,取什么样的值?

2.需要用到分支结构;

3.需要用到取整操作

#circlearea.py  # #表示注释 
import math #import引入math包
r = float(input('输入半径r:')) #r,area变量不用定类型
area = math.pi**r #math.pi调用math库的pi值**表示乘方运算
if area >= 10:    #冒号和缩进表示 if 结构开始print('圆面积为:{:.2f}'.format(area))
else:    #冒号和缩进表示 else 结构print('圆面积为:%d'%math.ceil(area))   #math.ceil()上取整math.floor()下取整

Python基础语法变量:

        编程就需要定义和使用变量,Python中变量定义有很大不同!

        不需要事先定义变量类型,直接赋值即可创建各种类型的对象变量,该方式适

用于Python任意类型的对象。

r = float(input('输入半径r:'))
area = math.pi**r
>>> x = 3 # 即创建了整型变量x,并赋值为3
>>> s = ‘Hello world’ #则创建了字符串变量s,并赋值为'Hello world’

        Python属于强类型编程语言,Python解释器根据赋值或运算自动推断变量类型。Python还是一种动态类型语言,变量的类型也是可以变化的。

>>> x = 3 # 即创建了整型变量x,并赋值为3
>>> type(x)
<class ‘int’>
>>> x = ‘Hello world’ #则创建了字符串变量x,并赋值为'Hello world’ >>> type(x)
<class 'str'>

        Python是面向对象的,它把数据都看成一个“对象”,而变量就是在程序中用来指向这些数据对象的,对变量赋值就把数据和变量进行了关联。Python具有自动内存管理功能,与java类似。

>>> x = 3
>>> y = 3
>>> id(x) == id(y) # id()是内置函数,返回对象的内存地址
True
>>> z = y
>>> y += 3
>>> id(x) == id(y)
False

变量名与C语言类似,需要注意以下问题:

  • 以字母或下划线开头【以下划线开头的变量在Python中有特殊含义】;
  • 变量名中不能有空格以及标点符号(括号、引号、逗号、斜线、反斜线、冒号、句号、问号等);
  • 不能使用关键字作变量名;
  • 不建议使用系统内置的模块名、类型名或函数名以及已导入的模块名及其成员名作变量名,这将会改变其类型和含义;
  • 变量名对英文字母的大小写敏感,例如Var1和var1是不同的变量。

Tips:查看关键字

>>> import keyword>>> keyword.kwlist

Tips:查看内置模块名

>>> dir(__builtins__)
#__是两个下划线

        IDE等开发环境中,系统内置模块名、类型名、函数名等会以不同颜色进行表示【演示】

Python代码规范—缩进

if area >= 10:
print('圆面积为:{:.2f}'.format(area))
else:
print('圆面积为:%d'%math.ceil(area))
def circlearea(r):
area = math.pi*r*r
return area
  • Python使用缩进体现代码之间的逻辑关系,没有{ }这种形式!
  • 类定义、函数定义、选择结构、循环结构,行尾用冒号表示缩进的开始
  • 同一个级别的代码块的缩进量必须相同
  • 一般而言,以4个空格为基本缩进单位【在IDE环境中可使用TAB键代替4个空格】

Python代码规范—注释

        Python默认ASCII编码,如包含中文等,为防止乱码,需要在脚本的第一行或第二行声明编码类型:

常用声明方式如下:

注意:在Python脚本的第一行或第二行中的编码注释属于编码声明,一个好的、可读性强的程序一般包含30%以上的注释。

Python模块和导入

Python强大的基石是其大量的标准库和其他人提供的第三方库

        使用Anaconda可以方便的管理大量的库及其版本,使用 pip list 或 conda list可以列出当前已有的库。

库的导入方式主要有以下两种:

  • import 模块名1 [as 别名1], 模块名2 [as 别名2],…
  • from 模块名 import 成员名1 [as 别名1],成员名2 [as别名2],…

注:form 模块名 import *方式不推荐使用

import math 
print(math.pi)
x = math.ceil(x)import numpy as np
import matplotlib.pyplot as plt
from PIL import Image
# step 1 导入用到的库
import matplotlib.pyplot as plt
import numpy as np
# step 2 调用numpy中方法准备数据
x=np.arange(-np.pi,np.pi,0.1)
y=np.sin(x)
# step 3 调用matplotlib方法制图
plt.piot(x,y,'b')
# step 4 显示图形
plt.show()

Python之禅:>>>import this

The Zen of Python, by Tim Peters

Beautiful is better than ugly. 

Explicit is better than implicit. 

Simple is better than complex. 

Complex is better than complicated. 

Flat is better than nested. 

Sparse is better than dense. 

Readability counts. 

Special cases aren't special enough to break the rules. 

Although practicality beats purity. 

Errors should never pass silently. 

Unless explicitly silenced.

In the face of ambiguity, refuse the temptation to guess. 

There should be one-- and preferably only one --obvious way to do it. 

Although that way may not be obvious at first unless you're Dutch. 

Now is better than never. 

Although never is often better than *right* now.

If the implementation is hard to explain, it's a bad idea.

If the implementation is easy to explain, it may be a good idea. 

Namespaces are one honking great idea -- let's do more of thos

优美胜于丑陋(Python 以编写优美的代码为目标)

•明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似)

•简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)

•复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁)

•扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)

•间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题)

•可读性很重要(优美的代码是可读的)

•即便假借特例的实用性之名,也不可违背这些规则(这些规则至高无上)

•不要包容所有错误,除非你确定需要这样做(精准地捕获异常,不写 except:pass 风格的代码)

•当存在多种可能,不要尝试去猜测

•而是尽量找一种,最好是唯一一种明显的解决方案(如果不确定,就用穷举法)

•虽然这并不容易,因为你不是 Python 之父(这里的 Dutch 是指 Guido )

•做也许好过不做,但不假思索就动手还不如不做(动手之前要细思量)

•如果你无法向人描述你的方案,那肯定不是一个好方案;反之亦然(方案测评标准)

•命名空间是一种绝妙的理念,我们应当多加利用(倡导与号召)

编写.py代码,实现以下功能:

1. 自查turtle库功能方法,绘制红色五角星

2. 基于turtle库绘制的美丽图形

附录:math库

        math模块是基础的python数学函数模块,提供了4个数学常数(如math.pi)和44个

函数,包括16个数值表示函数、8个幂对数函数、16个三角对数函数和高等函数(https://docs.python.org/zh-cn/3/library/math.html)

>>>import math #导入math模块
>>>dir(math) #查看math所有方法名列表
>>>help(math) #查看具体定义及函数原型

附录:turtle库

Turtle库于1969年诞生,是Python语言的标准库之一,入门级的图形绘制函数库。利用turtle库可以绘制很多很好看的图,如济南大学的师兄师姐们的作品如下:

(https://www.python123.io/index/turtles/colleges/济南大学)

可以把原创turtle代码上传:(https://python123.io/index/playground/turtle)

(https://www.michael0x2a.com/blog/turtle-examples)

>>>pip install turtle #若无turtle库,可以安装
>>>import turtle #导入后即可使用turtle库方法绘制图形

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/64708.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Go web 开发框架 Iris

背景 掌握了 Go 语言的基础后就该开始实践了&#xff0c;编写Web应用首先需要一个 web 开发框架。做框架选型时&#xff0c;处理web请求是基本功能&#xff0c;至于MVC是更进一步需要。现在比较流行的web架构是前后端分离&#xff0c;后端响应RESTful的请求&#xff0c;Iris 能…

Python 助力 DBA:高效批量管理数据库服务器的多线程解决方案-多库查询汇总工具实现

批量数据库服务器连接测试与数据汇总&#xff1a;Python实现方案 作为数据库服务器运维人员&#xff0c;我们经常需要面对大量服务器的连接测试和数据汇总工作。本文将介绍一个使用Python实现的高效解决方案&#xff0c;可以帮助我们快速完成这些任务。 需求概述 从配置文件…

vue预览和下载 pdf、ppt、word、excel文档,文件类型为链接或者base64格式或者文件流,

** 方法1&#xff1a;word、xls、ppt、pdf 这些文件&#xff0c; 如果预览的文件是链接可以直接打开&#xff0c;可用微软官方的预览地址 ** <iframe width"100%" :src"textVisibleURl " id"myFramePPT" style"border: none;backgroun…

python elasticsearch_dsl PIT Point in time API 查询

默认情况下&#xff0c;搜索请求针对目标索引的最新可见数据&#xff08;称为时间点&#xff09;执行。elasticsearchpit&#xff08;时间点&#xff09;是一种轻量级视图&#xff0c;可以查看数据在启动时的状态。在某些情况下&#xff0c;最好使用同一时间点执行多个搜索请求…

OB删除1.5亿数据耗费2小时

目录 回顾&#xff1a;mysql是怎么删除数据的&#xff1f; 删除方案 代码实现 执行结果 结论 本篇是实际操作 批量处理数据以及线程池线程数设置 记录学习 背景&#xff1a;有一张用户标签表&#xff0c;存储数据量达4个亿&#xff0c;使用OceanBase存储&#xff0c;由于…

【2025最新计算机毕业设计】基于SSM框架的宠物领养系统【提供源码+答辩PPT+文档+项目部署】

作者简介&#xff1a;✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流。✌ 主要内容&#xff1a;&#x1f31f;Java项目、Python项目、前端项目、PHP、ASP.NET、人工智能…

【专题】2024抖音电商母婴行业分析报告汇总PDF洞察(附原数据表)

原文链接&#xff1a;https://tecdat.cn/?p38651 在数字化浪潮的席卷下&#xff0c;抖音电商母婴行业正经历着深刻变革。当下&#xff0c;年轻一代父母崛起&#xff0c;特别是 24 至 30 岁以及 18 至 23 岁的群体成为抖音母婴行业兴趣人群的主力军。他们带来全新育儿理念&…

免费开源!推荐一款网页版数据库管理工具!

免费开源&#xff01;推荐一款网页版数据库管理工具&#xff01; DBGate 是一个开源的数据库管理工具&#xff0c;DBGate 的最大特点是可以 Web 访问&#xff01;&#xff0c;轻松实现一台机器部署&#xff0c;所有人使用&#xff01; 无论是 MySQL、PostgreSQL、SQLite 还是…

使用 UniApp 在微信小程序中实现 SSE 流式响应

概述 服务端发送事件(Server-Sent Events, SSE)是一种允许服务器向客户端推送实时更新的技术。SSE 提供了一种单向的通信通道,服务器可以持续地向客户端发送数据,而不需要客户端频繁发起请求。这对于需要实时更新的应用场景非常有用。 流式传输的特点是将数据逐步传输给客…

【Java项目】基于SpringBoot的【旅游管理系统 】

【Java项目】基于SpringBoot的【旅游管理系统 】 技术简介&#xff1a;本系统使用JAVA语言开发&#xff0c;采用B/S架构、Spring Boot框架、MYSQL数据库进行开发设计。 系统简介&#xff1a;&#xff08;1&#xff09;管理员功能&#xff1a;可以管理个人中心、用户管理、景区分…

音频接口:PDM TDM128 TDM256

一、 PDM接口 在麦克风&#xff08;Mic&#xff09;接口中&#xff0c;PDM&#xff08;Pulse Density Modulation&#xff0c;脉冲密度调制&#xff09;和I2S&#xff08;Inter-IC Sound&#xff0c;集成电路内置音频总线&#xff09;是两种常见的数字输出接口。 1、工作原理…

【系统】Windows11更新解决办法,一键暂停

最近的windows更新整的我是措不及防&#xff0c;干啥都要关注一下更新的问题&#xff0c;有的时候还关不掉&#xff0c;我的强迫症就来了&#xff0c;非得关了你不可&#xff01; 经过了九九八十一难的研究之后&#xff0c;终于找到了一个算是比较靠谱的暂停更新的方法&#x…

Canoe E2E校验自定义Checksum算法

文章目录 一、添加 DBC文件二、导入要仿真的ECU节点三、编写 CAPL脚本1. 创建 .can 文件2. 设置counter递增3. 设置 CRC 算法&#xff0c;以profile01 8-bit SAE J1850 CRC校验为例 四、开始仿真五、运行结果CRC在线校验 当E2E的 CRC算法非常规算法&#xff0c;则需要自己编写代…

穷举vs暴搜vs深搜vs回溯vs剪枝系列一>找出所有子集的异或总和再求和

题目&#xff1a; 解析&#xff1a; 代码&#xff1a; private int ret;//返回周结果private int path;//枚举一个元素就异或进去public int subsetXORSum(int[] nums) {dfs(nums, 0);return ret;} private void dfs(int[] nums, int pos){ret path;for(int i pos; i <…

洛谷【贪心算法】P1803 学习笔记

2024-12-20 - 第 41 篇 洛谷贪心算法题单 - 贪心算法 - 学习笔记 作者(Author): 郑龙浩 / 仟濹(CSND账号名) P1803 凌乱的yyy / 线段覆盖 题目背景 快 noip 了&#xff0c;yyy 很紧张&#xff01; 题目描述 现在各大 oj 上有 n n n 个比赛&#xff0c;每个比赛的开始、结…

python使用Flask框架创建一个简单的动态日历

0. 运行效果 运行代码&#xff0c;然后在浏览器中访问 http://127.0.0.1:5000/&#xff0c;将看到一个动态日历&#xff0c;能够通过点击按钮切换月份。 1. 安装 Flask 首先&#xff0c;确保你已经安装了Flask。如果没有&#xff0c;可以使用以下命令安装&#xff1a; pip i…

Python字典使用练习-----实现查找电话号

不记得字典语法知识的可以翻我主页^V^ 【要求】 定义一个电话簿&#xff0c;字典里头设置以下联系人&#xff1a; mayun:13309283335, zhaolong:18989227822, zhangmin:13382398921, Gorge:19833824743, Jordan:18807317878, Curry:15093488129, Wade:19282937665 现在输入…

windows openssl编译x64版libssl.lib,编译x64版本libcurl.lib,支持https,vs2015编译器

不要纠结&#xff0c;直接选择用perl编译&#xff01; 告诫想要用弄成vs编译版的&#xff0c;暂时先别给自己增加麻烦 告诫&#xff0c;以下执行的每一步&#xff0c;都不要纠结 先安装环境 nasm 64位版本 https://www.nasm.us/pub/nasm/releasebuilds/2.16.01/win64/nasm-…

dev类似于excel的数据编辑

其实这个不是我最后的结果&#xff0c;只是中间demo&#xff0c;因为我的场景数据量很大&#xff0c;2w左右&#xff0c;有数据合并&#xff0c;我更倾向于el-table是实现&#xff0c;但不想el-input一直显示&#xff0c;想用if-else 去做隐藏&#xff0c;但是用typetextarea发…

uniapp对接unipush 1.0 ios/android

简介 实现方法 是uniapp官网推荐的 unipush-v1 文档配置具体看 uni-app官网 配置好了之后 代码实现 前端代码 前端的主要任务是监听 监听到title content 创建消息推送 安卓 可以收到在线消息并且自动弹出消息 IOS 可以监听到在线消息但是需要手动推送 以下代码app初始…