【阿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路径的位置 - ...
随机推荐
- Apache的DBUtils框架学习(转)
一.commons-dbutils简介 commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化 ...
- 通过Servlet生成验证码图片(转)
一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下:
- Java 8 访问接口的默认方法
Java 8 API提供了很多全新的函数式接口来让工作更加方便,有一些接口是来自Google Guava库里的,即便你对这些很熟悉了,还是有必要看看这些是如何扩展到lambda上使用的. 一.Opti ...
- vue动态组件-根据数据展示特定组件
vue中有个内置组件component,利用它可以实现动态组件,在某些业务场景下可以替换路由 假设有以下三个组件: com1.com2.com3 有一个外层路/coms中代码如下 <templa ...
- 记录安装Python第三方包“tesserocr”的方法和遇到的坑
1. 环境: 系统环境:Win7 32 位系统 Python版本: 3.6.5 虚拟环境为:Miniconda3 2. 共需要安装的模块: a. tesserocr b. tessera ...
- requests爬取豆瓣top250电影信息
''' 1.爬取豆瓣top250电影信息 - 第一页: https://movie.douban.com/top250?start=0&filter= - 第二页: https://movie ...
- redis 的持久化方式
redis 持久化的两种方式 RDB:RDB 持久化机制,是对 redis 中的数据执行周期性的持久化. AOF:AOF 机制对每条写入命令作为日志,以 append-only 的模式写入一个日志文件 ...
- JavaScript之DOM操作,事件操作,节点操作
1,DOM操作 1.1 概念 所谓DOM,全称Document Object Model 文档对象模型,DOM是W3C(World Wide Web Consortuum )标准,同时也定义了访问诸 ...
- 洛谷$P4149\ [IOI2011]\ Race$ 点分治
正解:点分治 解题报告: 传送门$QwQ$ 昂先不考虑关于那个长度的限制考虑怎么做? 就开个桶,记录所有边的取值,每次加入边的时候查下是否可行就成$QwQ$ 然后现在考虑加入这个长度的限制?就考虑把这 ...
- js判断各种类型
js的六种基本类型:Object,Boolean,Number,String,Undefined,Null; Object中又有:Function,Array,Date... 如何判断数据类型? Ob ...