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,一经查实,立即删除!

相关文章

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…

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;可以管理个人中心、用户管理、景区分…

【系统】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 <…

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

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

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-…

【WRF-Urban】输入空间分布人为热排放数据的WRF运行全过程总结

目录 数据准备检查新增变量配置(如果有)WPS预处理修改namelist.wpsStep1: geogridStep2: ungribStep3: metgridWRF运行修改namelist.input调试namelist.input运行./real.exe运行./wrf.exe参考WRF模型的基本流程如下: 数据准备 空间分布热排放数据下载及制备可参见另一博客…

JavaSE——绘图入门

一、Java绘图坐标体系 下图说明了Java坐标系&#xff0c;坐标原地位于左上角&#xff0c;以像素为单位。在Java坐标系中&#xff0c;第一个是x坐标&#xff0c;表示当前位置为水平方向&#xff0c;距离坐标原点x个像素&#xff1b;第二个是y坐标&#xff0c;表示当前位置为垂直…

初学stm32 --- 系统时钟配置

众所周知&#xff0c;时钟系统是 CPU 的脉搏&#xff0c;就像人的心跳一样。所以时钟系统的重要性就不言而喻了。 STM32 的时钟系统比较复杂&#xff0c;不像简单的 51 单片机一个系统时钟就可以解决一切。于是有人要问&#xff0c;采用一个系统时钟不是很简单吗&#xff1f;为…

FM-CLIP: Flexible Modal CLIP for Face Anti-Spoofing

“FM-CLIP: Flexible Modal CLIP for Face Anti-Spoofing”由澳门科技大学、中国科学院等单位的Ajian Liu、Hui Ma等人撰写。文章提出了一种名为FM-CLIP的新型灵活模态人脸反欺诈(FAS)方法,通过利用文本特征动态调整视觉特征以实现模态独立性,在多模态数据集上取得了优于现…

进网许可认证、交换路由设备检测项目更新25年1月起

实施时间 2025年1月1日起实施 涉及设备范围 核心路由器、边缘路由器、以太网交换机、三层交换机、宽带网络接入服务器&#xff08;BNAS&#xff09; 新增检测依据 GBT41266-2022网络关键设备安全检测方法交换机设备 GBT41267-2022网络关键设备安全技术要求交换机设备 GB/…

白嫖内网穿透之神卓互联Linux安装教程(树莓派)

最近家里有一个树莓派&#xff0c;捣鼓来去不知道干嘛&#xff0c;于是打算作为内网穿透盒子用&#xff0c;于是百度了一下&#xff0c;发现神卓互联还不错&#xff0c;可以让外网请求通过各种复杂的路由和防火墙访问到内网的服务。 以下是在Linux树莓派系统上安装神卓互联客户…

Ansible 批量管理华为 CE 交换机

注&#xff1a;本文为 “Ansible 管理华为 CE 交换机” 相关文章合辑。 使用 CloudEngine - Ansible 批量管理华为 CE 交换机 wsf535 IP 属地&#xff1a;贵州 2018.02.05 15:26:05 总体介绍 Ansible 是一个开源的自动化运维工具&#xff0c;AnsibleWorks 成立于 2012 年&a…

防火墙(RHCE)

1、什么是防火墙 防火墙&#xff1a;防火墙是位于内部网和外部网之间的屏障&#xff0c;它按照系统管理员预先定义好的规则来控制数据包 的进出。 防火墙又可以分为硬件防火墙与软件防火墙。硬件防火墙是由厂商设计好的主机硬件&#xff0c;这台硬件防火墙 的操作系统主要以提…