第2.2节 Python的语句
上节已经介绍了极简的Python代码编写,已经用到了赋值语句,本节对Python的程序语句进行介绍。
一、 常用命令
在介绍Python语句之前,先介绍一下几个有用的Python命令。
- dir(模块名或类名或变量名或表达式名):获得当前模块、变量对应类型、表达式计算值对应类的属性列表
- type(变量名或表达式名):获取变量或表达式计算值的对应类型;
- help(类名)或help(类名.属性或方法名)或help(变量.属性或方法名),如:help(name.count):给出参数对应的帮助说明,需要说明的是一个变量如果是系统的类型或类实例,通过变量名.方法或属性能找到该类型或类的帮助。
二、 Python的命名建议
1、 文件名:全小写,可使用下划线
2、 函数名:小写,可以用下划线风格单词以增加可读性。如:myfunction,my_example_function,大小写混合不推荐使用;
3、 变量:变量名全部小写,由下划线连接各个单词。
三、 Python的基本程序语句
1、 注释语句
Python中注释使用#开头,只能做单行注释,如果是多行,可以采用每行加#号。
2、 import语句
import语句是引入已经定义好的模块,供需要使用的模块使用。有两种语法:
import 模块名
from 模块名import 方法或属性名
from 模块名import *
这三者的区别是,第一种方法将整个模块都引入,可以使用这个模块所有的属性和方法,使用前需要带模块名的方式调用;第二种方法是只引入某个属性或方法,第三种方式用*号引入所有方法和属性。第二、三种方式引入的属性和方法在使用时不带模块名。但如果多个模块和引用模块存在相同的方法或属性则不能使用该方法。
例如:
import math
sqrt(4)
Traceback (most recent call last):
File “<pyshell#1>”, line 1, in
sqrt(4)
NameError: name ‘sqrt’ is not definedmath.sqrt(4)
2.0from math import sqrt
sqrt(4)
2.0
3、 def函数定义语句
Python中的函数定义以def开始,具体语法如下:
def 函数名(变量列表):
….语句体
注意:函数的参数括号后必须加冒号,函数的声明必须顶格写,语句与函数的声明必须缩进4个空格(上面例子以4个点表示,请参见下面Python的代码嵌套格式部分的内容),函数的返回可以以return返回,也可以不指定return自动结束。
例子:
def add(n1,n2):
return n1+n2
4、 if条件语句
语法如下:
if 条件1:
….执行的内容1
elif 条件2:
….执行的内容2
elif 条件3:
….执行的内容3
else:
….执行的内容4
注意:if总体用法与c类似,但每个关键词语句后面必须有冒号,每个执行内容必须缩进4个空格。
举例:
if add(1,4)>10:
….print(‘和大于10’)
else:
….print(’和小于等于10’)
5、 for循环语句
for语句与C语言相差比较大,涉及到一些复杂数据类型“迭代”、”序列”,在这里不进行讲解,在后面学习了复杂数据类型再补充。在此只介绍基本语法:
for iterating_var in sequence:
…. 语句块
6、 while循环语句
while循环与c语言类似,语法如下:
while 条件表达式:
…. 语句块
注意:
1、 条件表达式后必须有冒号;
2、 while语句支持与c类似的break和continue;
3、 语句块与while条件语句必须缩进4个空格;
4、 与c语言的差异除了格式上的差异外,在Python中只支持前while语句,不能象C语言while语句既可以在循环体开始,也可以在循环体结束。
例子:
while True:
name=input(‘Your name:’)
if(len(name)>0):
print(‘welcome you,’+name+’!’)
else:
print(“Good bye!”)
break
输出:
Your name:jwp
welcome you,jwp!
Your name:Lisi
welcome you,Lisi!
Your name:
Good bye!
补充说明一个界面使用方法,在交互式方式下,输入语句结束时需要输入两次回车,否则编辑器认为输入没有结束。
7、 Python的代码嵌套格式
这部分内容其实前面已经部分涉及到,主要有如下内容:
- Python用缩进表示一次代码嵌套,每次缩进代表该块相同缩进的代码是上层的嵌套代码,缩进符可以是TAB键、指定个数的空格,这种缩进的代码块类似于C语言的{}括起来的代码块。与c语言嵌套可以多用一次大括号类似,同一个缩进的代码块可以在上层代码基础上缩进超过一次,只要该代码块的缩进保持一致就可以;
- Python的缩进没有强制要求是多少个符合,只要求同一语句体必须缩进一致,我们甚至可以对同一个if语句不同条件用不同的缩进方式,只需要满足同一层的代码块一致,且比上一层有缩进就可以,且首层无缩进,但真正编写代码时建议一次缩进就用相同的缩进字符数,两次就是2倍,依次类推;
- 首层语句体之前不能有空格,否则编译会报错;
- Python的函数定义、if、while、for语句最后必须有冒号,其后跟代码需要有一次缩进。
Python这种代码缩进方式进行的代码嵌套与c语言差别很大,但使用缩进来嵌套代码有利于提高代码的可读性,不用再去进行括号匹配就可以知道相同层次的语句体范围。只是需要注意对同一文件使用不同编辑器编辑时,可能相同的TAB键有不同的缩进数,以及有些编辑器会强行转换连续的N个空格为TAB键的情况,可能导致缩进不一致。
第2.2节 Python的语句的更多相关文章
- 第8.2节 Python类的__init__方法深入剖析:构造方法案例详解
前面一节介绍了构造方法定义的语法,并进行了语法解释说明,本节将通过案例来说明构造方法参数传递及返回值的情况. 一. 案例说明 本节定义一个汽车类,它有四个实例变量:wheelcount, pow ...
- 第7.26节 Python中的@property装饰器定义属性访问方法getter、setter、deleter 详解
第7.26节 Python中的@property装饰器定义属性访问方法getter.setter.deleter 详解 一. 引言 Python中的装饰器在前面接触过,老猿还没有深入展开介绍装饰 ...
- 第7.25节 Python案例详解:使用property函数定义与实例变量同名的属性会怎样?
第7.25节 Python案例详解:使用property函数定义与实例变量同名的属性会怎样? 一. 案例说明 我们上节提到了,使用property函数定义的属性不要与类内已经定义的普通实例变量重 ...
- 第7.24节 Python案例详解:使用property函数定义属性简化属性访问代码实现
第7.24节 Python案例详解:使用property函数定义属性简化属性访问代码实现 一. 案例说明 本节将通过一个案例介绍怎么使用property定义快捷的属性访问.案例中使用Rectan ...
- 第7.23节 Python使用property函数定义属性简化属性访问的代码实现
第7.23节 Python使用property函数定义属性简化属性访问的代码实现 一. 背景 在本章前面章节中,我们介绍了类相关的知识,并举例进行了说明,在这些例子中会定义一些形如 ...
- 第8.27节 Python中__getattribute__与property的fget、@property装饰器getter关系深入解析
一. 引言 在<第7.23节 Python使用property函数定义属性简化属性访问的代码实现>和<第7.26节 Python中的@property装饰器定义属性访问方法gette ...
- 第10.9节 Python子包的导入方式介绍
在<第10.8节 Python包的导入方式详解>详细介绍了包的导入方式,子包也是包,子包的导入与包的导入方法上没有本质区别,但二者还是有所不同.本节对照二者的方式介绍子包与包导入的关系: ...
- 第10.8节 Python包的导入方式详解
一. 包导入与模块导入的关系 由于包本质上是模块,其实对模块的许多导入方法都适用于包,但由于包的结构与模块有差异,所以二者还是有些区别的: 对包的导入,实际上就是包目录下的__init__.py文件的 ...
- 第10.4节 Python模块的弱封装机制
一. 引言 Python模块可以为调用者提供模块内成员的访问和调用,但某些情况下, 因为某些成员可能有特殊访问规则等原因,并不适合将模块内所有成员都提供给调用者访问,此时模块可以类似类的封装机制类似的 ...
随机推荐
- 利用GitHub和Hexo打造免费的个人博客
每个程序猿都需要一个个人博客,目前广泛出现在大家视野里的有CSDN.博客园.简书,但是他们却没有给用户一个专属的站点.一个好记的域名.你需要一个https://xxx.xxx.xxx/格式的网址,一个 ...
- JS小案例:循环间隔重复变色
在A.B.C三个区块中,有且仅有一个红色,要求红色每隔一秒即进入下一个区块,变色过程不断循环往复. 参考代码: <!DOCTYPE html> <html lang="zh ...
- 【linux】led子系统
目录 前言 linux子系统 led子系统 led子系统实战-系统调用-ARM平台 前言 接下来记录的是 led子系统 目前不涉及驱动源码 linux子系统 在 Linux 系统中 绝大多数硬件设备都 ...
- 运维告警排班太复杂?试试Cloud Alert智能告警排班
前言: 之前的几篇文章有说过,通过智能告警平台Cloud Alert,将指定条件的告警以多样化的通知方式,通知到指定的人,其中的通知的方式包含电话.短信.邮件.微信.APP.钉钉等. 本篇文章就来说下 ...
- Go语言内存分配(详述 转)
一.内存管理简介 1.1 虚拟内存 虚拟内存是当代操作系统必备的一项重要功能,对于进程而言虚拟内存屏蔽了底层了RAM和磁盘,并向进程提供了远超物理内存大小的内存空间.我们看一下虚拟内存的分层设计. 上 ...
- Python_爬虫_基础
1.urllib 和 Xpath的区别与联系 from urllib import request from lxml import etree from bs4 import BeautifulS ...
- Linux——CentOS 7 systemctl和防火墙firewalld命令
一.防火墙的开启.关闭.禁用命令 (1)设置开机启用防火墙:systemctl enable firewalld.service (2)设置开机禁用防火墙:systemctl disable fire ...
- 网站实现微信扫码登录 php
微信开放平台账号一个,必须是商户,不然你也开不了 1.在开放平台创建应用,并设置回调地址(域名即可) 2.生成二维码,前端代码,用户扫码后会给你的回调地址发送code <span id=&quo ...
- word边框+底纹
边框(段落和文字):先进行方框.阴影.三维等边框的选择,再进行样式.颜色.宽度设置,应用于:段落和文字:选项:距离正文上下左右距离. 页面边框(页.整篇文章等):先进行方框.阴影.三维等边框的选择,再 ...
- Jmeter测试TCP协议
最近做了个项目是TCP协议传输数据,于是马上想试试JMeter测试TCP. 1首先需要下载第三方的TCP插件包ApacheJMeter_tcp.jar,下载步骤请自行百度. 2.下载完重新配置jmet ...