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库方法绘制图形