基础语法

标识符

所谓的标识符就是对变量、常量、函数、类等对象起的名字。

首先必须说明的是,Python语言在任何场景都严格区分大小写!也就是说A和a代表的意义完全不同

python对于表示标识符的命名有如下规定:

第一个字符必须是字符表中的字符或者下划线

例如,a,abc,_id,等都是可以的。但是例如$a(以$开头的是PHP的变量语法),~abc,123a都是不可以的。这一点一定要注意。

可能有人会问,中文可以作为标识符嘛?答案是可以的

我 = "json",打印出‘我’ 结果是json

虽然可以但是不建议大家这样做。

另外,以下划线开头的标识符通常都有特殊意义。以单下划线开头的变量,例如_foo代表禁止外部访问的类成员,需通过类提供的接口进行访问,不能用"from xxx import *"导入。而以双下划线开头的,例如__foo,代表类的私有成员 以双下划线开头和结尾的__foo__是python里特殊方法专用的标识。如__init__代表类的构造函数。这些我们后面会专门的讨论这里不做过多的解释。

标识符的其他的部分由字母、数字和下划线组成

标识符除了首字符不可以是数字外,其他部分还可以包含数字。这里需要注意特殊字符是不可以的。例如:

a123b,bbc,a_b_c_1这些都是可以的。但是a&b,a-b-c这些都是不可以的。

另外要注意的是,由于l(小写的L)和数字1, 大小写的o与数字0在外观上的相似性,请尽量不要让它们相邻出现,保持语义的清晰性,确保不会发现错误认读的情况。

同样,英文中夹塞中文在语法上也是可以的,但绝对不要这么做!

a这都能行b就服你 = 100
a这都能行b就服你
100

标识符对大小写敏感

刚刚上面也给大家说过了,标识符ab和AB是完全不同的两个标识符

变量名全部小写,常量名全部大写

这条不能算语法层面的要求,而是代码规范的要求。

可以用PI来表示一个变量,但通常我们都会认为这是代表圆周率的一个常量

函数和方法名用小写加下划线

这算是一个代码的规范,我们在定义一个方法的时候。尽量用get_images,count_apple之类的命名方式。当然也可以采用小驼峰的方式,getImages,countApple这种。

类名用大驼峰

同样也是代码规范,例如ThreadMinxIn,ButtonClick这种。就是每个单词的首字母大写,组合在一起就像是驼峰一样高低排列。

模块和包的名字用小写

请尽量小写模块和包的名字,并且不要和标准库以及著名的第三方库同名。如果同名程序运行会报错。

最后提醒大家,变量的命名不要用关键字和内置函数的名称!!

python保留字

Python保留字,也叫关键字,是Python语言官方确定的用作语法功能的专用标识符,不能把它们用作任何自定义标识符名称。关键字只包含小写字母。可以通过python提供的库输出这些关键字

Python的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字

import keyword
keyword.kwlist

如果真的用关键字来当做变量,会怎么样呢?

系统会直接提示语法错误,所以这里一定要注意不要用关键字来当做变量。除了不能使用关键字作为标识符,内置的函数同样也是不可以的。sum是一个求和的函数。这里我给它定义成一个字符串看看会有什么结果?

注释

我们写的程序里,不光有代码,还要有很多注释。注释有说明性质的、帮助性质的,它们在代码执行过程中相当于不存在,透明的。

单行注释

Python中,以符号“#”为单行注释的开始,从它往后到本行的末尾,都是注释内容。

# 单行注释

多行注释

Python没有真正意义上的多行注释(块注释)语法

#第一行注释

#第二行注释

#第三行注释

注释文档

在某些特定的位置,用三引号包括起来的部分,也被当做注释。

"""
这个是函数的说明文档。
:param a: 加数
:param b: 加数
:return: 和
"""

代码头两行

很多时候,我们在一些py脚本文件的开头都能看到类似的以#开头的这样两行代码,它们不是注释,是一些设定

#!/usr/bin/env python
# -*- coding:utf-8 -*-

第一行:用于指定运行该脚本的Python解释器,Linux专用,windows不需要。env方式下,系统会自动使用环境变量里指向的Python。还有一种方式,#!/usr/bin/python3.6,这会强制要求使用系统中的python3.6解释器执行文件,这种方式不好,一旦你本地的Python3.6版本删除了,会出现找不到解释器的错误。无论两种方式的哪一种,都指的是在linux下使用

第二行:代码的编码方式。不是程序要处理的数据的编码方式,而是程序自己本身的字符编码。在Python3中,全面支持Unicode,默认以UTF-8编码,我们不用再纠结中文的问题,乱码的问题,所以本行其实可以不需要。但在Python2中,对字符的编码是个非常令人头疼的问题,通常都需要指定这么一行。如果要自定义别的编码类型的话,可以像这样:# -- coding: cp-1252 --,但如果没有强制需求的话,不要自己作死,请坚持使用utf-8编码。

这里的-*-是什么意思呢?没意思,装饰美观好看而已

语句与缩进

语句:在代码中,能够完整表达某个意思、操作或者逻辑的最短代码,被称为语句。

a = 321
a = 321
print("hello world")
list.append(item)

这里强调一下,python的标准语言不需要使用分号。简单的换行就表示语句已经结束。

代码块:为完成某一特定功能而联系在一起的一组语句构成一个代码块。有判断、循环、函数、类等各种代码块。代码块的首行通常以关键字开始,以冒号( : )结束。比如:

if expression:
pass
elif expression :
pass
else:
pass

Python最具特色的语法就是使用缩进来表示代码块,不需要使用大括号

像PHP、JAVA等语言都是使用({})来表示代码块的。python一般用四个空格就是tab来缩进。在pycharm中tab自动回转成4个空格。在Linux环境中,如VIM编辑器,建议使用空格。

那么怎么才是正确的缩进方式呢?

1.所有的普通语句,顶左开始编写,不需要缩进

2.所有的语句块,首行不用缩进,从冒号结束后开始下一行,都要缩进

3.直到该语句块结束,就退回缩进,表示当前块已结束

4.语句块可以嵌套,所以缩进也可以嵌套

多行语句: 前面是多条语句在一行,但如果一条语句实在太长,也是可以占用多行的,可以使用反斜杠()来实现多行语句

string = "i love this country,"\
+"because it is very beautiful!"\

不到迫不得已,不要使用这种,该换行就换行。

pass语句

pass语句是占位语句,它什么都不做,只是为了保证语法的正确性而写。以下场景中,可以使用pass语句:

当你不知道后面的代码怎么写的时候

当你不需要写代码细节的时候

当语法必须,又没有实际内容可写的时候

其它的一些你觉得需要的场景

def func(a,b):
pass

字符串的表示形式

在后面的章节中,会进行更深入的介绍,这里作为一个前期的知识铺垫。

abc可能是个变量,但是"abc"肯定是个字符串了。这里强调一下在编程语言中,所有的符号都是英文状态下的。

在python中单引号和双引号的作用完全相同。在其他语言中,单双引号还是有一定区别的。

原生字符串: 通过在字符串前加r或R,如 r"this is test \n",表示这个字符串里的斜杠不需要转义,等同于自身

Python基础-1 基础语法的更多相关文章

  1. Python:笔记(1)——基础语法

    Python:笔记(1)——基础语法 我很抱歉有半年没有在博客园写过笔记了,客观因素有一些,但主观原因居多,再多的谴责和批判也都于事无补,我们能做的就是重振旗鼓,继续出发! ——写在Python之前 ...

  2. Python入门篇-基础语法

    Python入门篇-基础语法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.编程基础 1>.程序 一组能让计算机识别和执行的指令. 程序 >.算法+ 数据结构= 程 ...

  3. Python VS PHP 基础语法

    这几天在学习Python,鄙人平时学习中为了方便记忆和更好的比较与理解语言二者之间在某些情况的优劣性,所以花了点时间,整理了一下 Python 和 PHP 常用语法的一些区别. 一.大小写 PHP: ...

  4. 给深度学习入门者的Python快速教程 - 基础篇

    实在搞不定博客园的排版,排版更佳的版本在: https://zhuanlan.zhihu.com/p/24162430 Life is short, you need Python 人生苦短,我用Py ...

  5. Python学习入门基础教程(learning Python)--5.6 Python读文件操作高级

    前文5.2节和5.4节分别就Python下读文件操作做了基础性讲述和提升性介绍,但是仍有些问题,比如在5.4节里涉及到一个多次读文件的问题,实际上我们还没有完全阐述完毕,下面这个图片的问题在哪呢? 问 ...

  6. Python学习笔记——基础篇【第四周】——迭代器&生成器、装饰器、递归、算法、正则表达式

    目录 1.迭代器&生成器 2.装饰器 a.基本装饰器 b.多参数装饰器 3.递归 4.算法基础:二分查找.二维数组转换 5.正则表达式 6.常用模块学习 #作业:计算器开发 a.实现加减成熟及 ...

  7. [Python] 文科生零基础学编程系列二——数据类型、变量、常量的基础概念

    上一篇:[Python] 文科生零基础学编程系列--对象.集合.属性.方法的基本定义 下一篇: (仍先以最简单的Excel的VBA为例,语法与Python不同,但概念和逻辑需要理解透彻) p.p1 { ...

  8. Python之路,第一篇:Python入门与基础

    第一篇:Python入门与基础 1,什么是python? Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. 2,python的特征: (1)易于学习,易于利用: (2)开 ...

  9. [转]python与numpy基础

    来源于:https://github.com/HanXiaoyang/python-and-numpy-tutorial/blob/master/python-numpy-tutorial.ipynb ...

  10. 给深度学习入门者的Python快速教程 - 基础篇(转)

    原文:https://zhuanlan.zhihu.com/p/24162430 5.1 Python简介 本章将介绍Python的最基本语法,以及一些和深度学习还有计算机视觉最相关的基本使用. 5. ...

随机推荐

  1. 【Python实现图片验证码】

    "```python import base64 import random from PIL import Image from PIL import ImageDraw # 画笔对象 f ...

  2. 根据IP地址查找MAC地址

    ping 地址 arp -a得到ip对应的mac

  3. 中国大学MOOC 邮箱验证的问题

    在使用 中国大学 MOOC 过程中,在PC端修改个人资料时,其中有项“常用邮箱”,于是写了QQ邮箱,结果发现一直无法验证,连邮件都无法收到. 经过多番尝试,重新使用邮箱注册的方式注册账号,然后注册成功 ...

  4. SoapUI学习(1)- WebService基础

    转载:http://luyongxin88.blog.163.com/blog/static/92558072011320101454287/ WebService 它是一种构建应用程序的普遍模型,可 ...

  5. CentOS6.5_x64安装MySQL-5.6.17,在已经启动MySQL服务的情况下,出现密码报错ERROR 2002 (HY000)

    1.修改MySQL配置文件,使MySQL登陆时跳过密码验证 skip-grant-tables 2.重启MySQL服务 service mysql restart 3.进入MySQL,修改user表中 ...

  6. linux 安装 Jenkins

    yum的repo中默认没有Jenkins,需要先将Jenkins存储库添加到yum repos,执行下面的命令: wget -O /etc/yum.repos.d/jenkins.repo https ...

  7. git查漏补缺

    1. commit提交注释规范 2. commit 注释没写完或写错了,在不用删除这条commit的情况下,如何更正注释信息 git commit -m '1' git commit  --amend ...

  8. 新手学习arm的建议

    本文来自:chen4013874的博客 如果您是ARM初学者或者以前是51单片机应用开发工程师,想快速进入32位ARM嵌入式开发领域,建议您阅读本文档.本文档是我们结合多年ARM开发经验,针对初学者对 ...

  9. 【Struts 文件上传下载】

    RegisterAction package k.action; import k.domain.User; import k.form.UserForm; import k.service.User ...

  10. 使用PIE.htc 进行IE兼容CSS3

    步骤: 1.引入文件.注意PIE.htc文件和css文件要放在同一个目录下: 2.在css元素中加上  behavior:url(pie.htc); 3.可以愉快的写css hack啦 ,这时需要的圆 ...