【阿K学Python系列】一Python基础语法(二)
前言
通过上一章的学习,我们已经初步了解到Python是一种解释型、面向对象、动态数据类型的高级程序设计语言,当然也是一门脚本语言,像前端需要学习的JavaScript一样也是一门脚本语言,而脚本语言最大的优势就是“不需要事先进行编译”,不像Java,C#等编程语言一样,需要先通过编译器进行编译然后执行,脚本语言可以直接读取文本文件,一边解释,一边执行。
本章目标
Python的标识符
Python的保留字(关键字)
Python的注释
Python的行与缩进
Python的多行语句
Python的引号
Python的空格与行
Python的print输出
Python的import 与 from...import的区别
Python的标识符
每一门编程语言都有标识符,Python也一样,但是换汤不换药,许多编程语言都有相似之处,对于Python的标识符,我总结如下四点:
- 第一个字符必须是字母表中字母或下划线
- 标识符中的其它部分由字母,数字,下划线组成
- 标识符对大小写敏感,例如:True和true是两个不同的变量
- 不能是Python的关键字,例如:def(函数),class(类)等就不能作为标识符
注意:
- 在python3中,可以用中文作为变量名,非ASCII标识符也是允许的(但不推荐)
- 以下划线开头的标识符是有特殊意义的,以单下划线开头
_foo
的代表不能直接访问的类属性(类的私有成员),需通过类提供的接口进行访问,不能用from xxx import *
而导入 - 以双下划线开头和结尾的
__foo__
代表 Python 里特殊方法专用的标识,如__init__()
代表类的构造函数
Python的保留字(关键字)
下面的列表显示了在Python中的保留字,这些保留字不能用作常数或变数,或任何其他标识符名称。
所有 Python 的关键字只包含小写字母。
and | exec | not |
assert | finally | or |
break | for | pass |
class | from | |
continue | global | raise |
def | if | return |
del | importt | try |
elif | in | while |
else | is | with |
except | lambda | yield |
Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字
import keyword
print(keyword.kwlist)
结果:
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
Python的注释
说到注释的话,可能大家都不陌生,毕竟大家都是搞开发的,但是Python这一门语言的注释非常独特,一般的编程语言可能使用//来代表单行注释,/*开始*/结束代表多行注释。Python使用#表示单行注释,‘’‘三个单引号之间代表多行注释’‘’,或者“”“三个多引号之间代表多行注释""",惊不惊喜,意不意外。
#三、注释
print('Hello world!')#这是一个单行注释,不会输出
"""
这是一个多行注释,不会被输出
"""
Python的行与缩进
学习 Python 与其他语言最大的区别就是,Python 的代码块不使用大括号 {} 来控制类,函数以及其他逻辑判断。python 最具特色的就是用缩进来写模块。
缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。
实例:
if True:
print('true')
else:
print('false')
以下代码将会执行错误:
if True:
print ("Answer")
print ("True")
else:
print ("Answer")
# 没有严格缩进,在执行时会报错
print ("False")
执行以上代码,会出现如下错误提醒:
File "test.py", line 11
print ("False")
^
IndentationError: unindent does not match any outer indentation level
注意:IndentationError: unindent does not match any outer indentation level错误表明,你使用的缩进方式不一致,有的是 tab 键缩进,有的是空格缩进,改为一致即可。
补充:如果是 IndentationError: unexpected indent 错误, 则 python 编译器是在告诉你"可能是tab和空格没对齐的问题",所有 python 对格式要求非常严格。因此,在Python的代码块中必须使用相同数目的行首缩进空格数。
Python的多行语句
Python语句中一般以新行作为语句的结束符。
但是我们可以使用斜杠( \)将一行的语句分为多行显示,如下所示:
total = item_one + \
item_two + \
item_three
语句中包含 [], {} 或 () 括号就不需要使用多行连接符。如下实例:
days = ['Monday', 'Tuesday', 'Wednesday',
'Thursday', 'Friday']
Python的引号
Python 可以使用引号( ' )、双引号( " )、三引号( ''' 或 """ ) 来表示字符串,引号的开始与结束必须的相同类型的。
其中三引号可以由多行组成,编写多行文本的快捷语法,常用于文档字符串,在文件的特定地点,被当做注释。
word = 'word'
sentence = "这是一个句子。"
paragraph = """这是一个段落。
包含了多个语句"""
Python的空格与行
在 Python 中,为了让代码看起来更清晰,具有更好的可读性,有时会在代码中太内疚空格和空行。空格或者空行与代码缩进不同,并不是 Python 语法的一部分。
书写时不插入空格或者空行,Python 解释器运行也不会出错。但是空格或者空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。
空格和空行是为了增加代码可读性。
比如在变量复制时添加空格
hello = "world"
比如类成员函数之间空一行,模块级函数和类定义之间空两行;
class A: def __init__(self):
pass def hello(self):
pass def main():
pass
Python的print输出
print() 默认输出是换行的,如果要实现不换行需要加上end参数。
x="a"
y="b"
print(x, end=' ')
print(y, end=' ')
Python的import 与 from...import的区别
在 python 用 import 或者 from...import 来导入相应的模块。
- 将整个模块(somemodule)导入,格式为: import somemodule
- 从某个模块中导入某个函数,格式为: from somemodule import somefunction
- 从某个模块中导入多个函数,格式为: from somemodule import firstfunc, secondfunc, thirdfunc
- 将某个模块中的全部函数导入,格式为: from somemodule import *
1、导入 sys 模块
import sys
print('================Python import mode==========================')
print ('命令行参数为:')
for i in sys.argv:
print (i)
print ('\n python 路径为',sys.path)
2、导入 sys 模块的 argv,path 成员
from sys import argv,path # 导入特定的成员 print('================python from import===================================')
print('path:',path) # 因为已经导入path成员,所以此处引用时不需要加sys.path
参考:
http://www.ityouknow.com/python/2019/08/02/python-002.html
https://www.runoob.com/python/python-basic-syntax.html
https://www.runoob.com/python3/python3-basic-syntax.html
https://www.xjimmy.com/python-4-code.html
【阿K学Python系列】一Python基础语法(二)的更多相关文章
- Python 基础语法(二)
Python 基础语法(二) --------------------------------------------接 Python 基础语法(一) ------------------------ ...
- web前端学习python之第一章_基础语法(二)
web前端学习python之第一章_基础语法(二) 前言:最近新做了一个管理系统,前端已经基本完成, 但是后端人手不足没人给我写接口,自力更生丰衣足食, 所以决定自学python自己给自己写接口哈哈哈 ...
- php从入门到放弃系列-02.php基础语法
php从入门到放弃系列-02.php基础语法 一.学习语法,从hello world开始 PHP(全称:PHP:Hypertext Preprocessor,即"PHP:超文本预处理器&qu ...
- 【Python系列】Python自动发邮件脚本-html邮件内容
缘起 这段时间给朋友搞了个群发邮件的脚本,为了防止进入垃圾邮件,做了很多工作,刚搞完,垃圾邮件进入率50%,觉得还不错,如果要将垃圾邮件的进入率再调低,估计就要花钱买主机了,想想也就算了,先发一个月, ...
- Python学习笔记(Ⅰ)——Python程序结构与基础语法
作为微软的粉丝,最后终于向Python低头了,拖了两三个月终于下定决心学习Python了.不过由于之前受到C/C#等语言影响的思维定式,前期有些东西理解起来还是很费了些功夫的. 零.先抄书: 1.Py ...
- 【python系列】python画报表(Chartkick、Flask)(附中文乱码解决方式)
chartkick 能够画 javascript 报表, 并且比較美观.可是网上搜了下.非常难找到 python 版本号的,于是查了些资料,摸索了下. 对 Flask 也不非常熟悉,这里就仅仅抛砖引玉 ...
- Python环境安装与基础语法(2)——数据类型、标识符、语言分类
高级语言发展 结构化语言:以顺序(步骤化),分支,循环描述问题 面向对象语言:接近人类的认知,万物抽象成对象,对象间的关系抽象成类和继承 程序=数据结果+算法 Python解释器 CPython:由C ...
- 【Python系列】Python自动发邮件脚本
缘起 这段时间给朋友搞了个群发邮件的脚本,为了防止进入垃圾邮件,做了很多工作,刚搞完,垃圾邮件进入率50%,觉得还不错,如果要将垃圾邮件的进入率再调低,估计就要花钱买主机了,想想也就算了,先发一个月, ...
- 01-Python学习笔记-基础语法
Python标识符 -d 在解析时显示调试信息 -O 生成优化代码 ( .pyo 文件 ) -S 启动时不引入查找Python路径的位置 - ...
随机推荐
- Android 隐藏顶部菜单栏
Android 隐藏状态栏 在Activity中: getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 在fragmen ...
- asp.net core web api 发布到iis失败 错误500.19
找了很久,发现是没有装DotNetCore.2.0.0-WindowsHosting.exe的原因. 还是官方文档最给力.部署时遇到问题的朋友可以参考官方文档 https://docs.microso ...
- 浅解 go 语言的 interface(许的博客)
我写了一个 go interface 相关的代码转换为 C 代码的样例.也许有助于大家理解 go 的 interface.不过请注意一点,这里没有完整解析 go 语言 interface 的所有细节. ...
- javascript 闭包的理解(二)
// 定义一个User构造函数 function User(properties){ //遍历对象属性,确保它作用域正确 for(var i in properties){ (function(whi ...
- VRChat之转移地图缓存
我的电脑是win10,win10的缓存地址和名称可能和win7的名字有所不同. win10缓存路径:C:\Users\Administrator\AppData\LocalLow\VRChat\VRC ...
- Python_全局变量的定义
1.在my套件下新建一个关键字systemkey并进行脚本的编写:创建一个${var1}变量,并赋值为aaaaaaaaaa Set Global Variable ${var1} ...
- 1.1 Lack of free swap space on zabbix_server (zabbix监控报错)
1.首先看一下内存 free -m 2.然后创建一个分区添加交换文件 mkdir /home/temp dd if=/dev/zero of=/home/temp/swap bs=1024 count ...
- 【C++】将调用第三方库的代码封装成动态库供上层调用
需求分析 Java应用中需要调用C++的程序,而这个C++的程序中需要引入一个第三方静态库.所以需要将该程序编译成一个动态库文件(.so)供Java调用. 步骤 使用CLion创建一个动态库的项目,会 ...
- 洛谷$P1600$ 天天爱跑步 树上差分
正解:树上差分 解题报告: 传送门$QwQ$! 这题还挺妙的,,,我想了半天才会$kk$ 首先对一条链$S-T$,考虑先将它拆成$S-LCA$和$LCA-T$,分别做.因为总体上来说差不多接下来我就只 ...
- spring之整合Hibernate
spring整合Hibernate整合什么? 1.让IOC容器来管理Hibernate的SessionFactory. 2.让Hibernate使用上spring的声明式事务. 整合步骤: 1.加入H ...