前言

通过上一章的学习,我们已经初步了解到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 print
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基础语法(二)的更多相关文章

  1. Python 基础语法(二)

    Python 基础语法(二) --------------------------------------------接 Python 基础语法(一) ------------------------ ...

  2. web前端学习python之第一章_基础语法(二)

    web前端学习python之第一章_基础语法(二) 前言:最近新做了一个管理系统,前端已经基本完成, 但是后端人手不足没人给我写接口,自力更生丰衣足食, 所以决定自学python自己给自己写接口哈哈哈 ...

  3. php从入门到放弃系列-02.php基础语法

    php从入门到放弃系列-02.php基础语法 一.学习语法,从hello world开始 PHP(全称:PHP:Hypertext Preprocessor,即"PHP:超文本预处理器&qu ...

  4. 【Python系列】Python自动发邮件脚本-html邮件内容

    缘起 这段时间给朋友搞了个群发邮件的脚本,为了防止进入垃圾邮件,做了很多工作,刚搞完,垃圾邮件进入率50%,觉得还不错,如果要将垃圾邮件的进入率再调低,估计就要花钱买主机了,想想也就算了,先发一个月, ...

  5. Python学习笔记(Ⅰ)——Python程序结构与基础语法

    作为微软的粉丝,最后终于向Python低头了,拖了两三个月终于下定决心学习Python了.不过由于之前受到C/C#等语言影响的思维定式,前期有些东西理解起来还是很费了些功夫的. 零.先抄书: 1.Py ...

  6. 【python系列】python画报表(Chartkick、Flask)(附中文乱码解决方式)

    chartkick 能够画 javascript 报表, 并且比較美观.可是网上搜了下.非常难找到 python 版本号的,于是查了些资料,摸索了下. 对 Flask 也不非常熟悉,这里就仅仅抛砖引玉 ...

  7. Python环境安装与基础语法(2)——数据类型、标识符、语言分类

    高级语言发展 结构化语言:以顺序(步骤化),分支,循环描述问题 面向对象语言:接近人类的认知,万物抽象成对象,对象间的关系抽象成类和继承 程序=数据结果+算法 Python解释器 CPython:由C ...

  8. 【Python系列】Python自动发邮件脚本

    缘起 这段时间给朋友搞了个群发邮件的脚本,为了防止进入垃圾邮件,做了很多工作,刚搞完,垃圾邮件进入率50%,觉得还不错,如果要将垃圾邮件的进入率再调低,估计就要花钱买主机了,想想也就算了,先发一个月, ...

  9. 01-Python学习笔记-基础语法

    Python标识符 -d           在解析时显示调试信息 -O           生成优化代码 ( .pyo 文件 ) -S           启动时不引入查找Python路径的位置 - ...

随机推荐

  1. Android 隐藏顶部菜单栏

    Android 隐藏状态栏 在Activity中: getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 在fragmen ...

  2. asp.net core web api 发布到iis失败 错误500.19

    找了很久,发现是没有装DotNetCore.2.0.0-WindowsHosting.exe的原因. 还是官方文档最给力.部署时遇到问题的朋友可以参考官方文档 https://docs.microso ...

  3. 浅解 go 语言的 interface(许的博客)

    我写了一个 go interface 相关的代码转换为 C 代码的样例.也许有助于大家理解 go 的 interface.不过请注意一点,这里没有完整解析 go 语言 interface 的所有细节. ...

  4. javascript 闭包的理解(二)

    // 定义一个User构造函数 function User(properties){ //遍历对象属性,确保它作用域正确 for(var i in properties){ (function(whi ...

  5. VRChat之转移地图缓存

    我的电脑是win10,win10的缓存地址和名称可能和win7的名字有所不同. win10缓存路径:C:\Users\Administrator\AppData\LocalLow\VRChat\VRC ...

  6. Python_全局变量的定义

    1.在my套件下新建一个关键字systemkey并进行脚本的编写:创建一个${var1}变量,并赋值为aaaaaaaaaa Set Global Variable        ${var1}    ...

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

  8. 【C++】将调用第三方库的代码封装成动态库供上层调用

    需求分析 Java应用中需要调用C++的程序,而这个C++的程序中需要引入一个第三方静态库.所以需要将该程序编译成一个动态库文件(.so)供Java调用. 步骤 使用CLion创建一个动态库的项目,会 ...

  9. 洛谷$P1600$ 天天爱跑步 树上差分

    正解:树上差分 解题报告: 传送门$QwQ$! 这题还挺妙的,,,我想了半天才会$kk$ 首先对一条链$S-T$,考虑先将它拆成$S-LCA$和$LCA-T$,分别做.因为总体上来说差不多接下来我就只 ...

  10. spring之整合Hibernate

    spring整合Hibernate整合什么? 1.让IOC容器来管理Hibernate的SessionFactory. 2.让Hibernate使用上spring的声明式事务. 整合步骤: 1.加入H ...