一、标识符

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

必须说明的是Python语言在任何场景都要严格区分大小写的。

命名规则

1.第一个字符必须是字母中的字母或下划线“_”

例如:a, AS, _get_id,name等都是可以的,但是例如:! @ # ... 等符号不能再变量名中

中文:是可以作为变量名的,Python3全面支持Unicode后,对中文的兼容性是越来越来好了。可以使用中文的。

我的名字 = "小黑"

print(我的名字)#执行结果

小黑

然而支持中文标识符,但是没人会这么干,也不建议这么做,将第一个字符必须是字母表中的字母或下划线“_”作为原则来执行。

另外,以下划线开头的标识符通常都是有特殊意义的

单下划线开头的变量:例如_foo代表禁止外部访问的类成员,需要通过类提供的接口进行访问,不能用“from xxx import * ”导入。

双下划线开头的变量:例如__foo代表类的私有成员,以双下划线开头和结尾的(__foo__)是Python里特殊方法专用的表示,如:__init__()代表类的构造函数。

2.标识符的其他的不分有字母、数字和下划线组成

也就是说标识符除了首字母不可以是数字外,其他部分可以包含数字的,

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

3.标识符对大小写敏感

基于Python严格区分大小写的,所以标识符abc与ABC是不同的两个变量。

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

这一条不能算语法层面的要求,而是代码规范的要求,虽然你可以用PI来表示一个变量,但通常我们都会认为这是代表圆周率的一个常量。

5.函数和方法名用小写家下划线

同样也不是语法强制的,而是代码规范,我们在定义一个函数或者方法的名字时候,请尽量使用类似的 get、set、get_name、set_name之类的命名方式。

6.类名用大写驼峰

也不是语法强制的也是代码规范。所谓的大写驼峰指的是每个单词的首字母大写,组合在一起就像驼峰一样高低高低的排列。如:

PythonPython

7.模块和包名字用小写

尽量小写模块和包的名字,并且不要和标准库以及三方库同名。

8.变量的命名不用用关键字和内置函数的名字

二、Python保留字

Python保留字,也称关键字,是Python语言官方确定的用作语法功能的专用标识符,不能把他们用作任何自定义标识符名称。关键字只包含小写字母,Python的标准库提供一个keyword模块,可以输出当前版本的关键字。

importkeywordprint(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么有真正意义上的多行注释(块注释)语法,通常用 (""" """ 或 ''' ''')

"""我是多行注释,"""

'''我是多行注释,'''

注释文档

在某些特定的位置,用三引号抱起来的部分,也被当做注释。但是这种注释专门的作用 ,用于为__doc__提供文档内容,这些内容可以通过现成的工具,自动收集起来,形成帮助文档。比如,函数和类的说明文档:

deffunc(x, y):"""这个函数说明

:param x: 乘数

:param y: 乘数

:return: 返回乘积"""

return x *yclassFoo:"""类的说明"""

pass

ps:这类注释必须紧跟在定义体下面,不能再任意位置。

四、语句与缩进

语句:在代码中,能够完整表带某个意思、操作或者逻辑的最短代码,被称为语句。语句通常不超过一行,超过一行的称为多行语句。比如;

from time importtime

name= "xiaohei"

print(name)print(name.split())

Python的标准语句不需要使用分号或逗号来表示语句结束,简简单单的换行就表示本语句结束了

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

#判断流程代码块

name = 20

if name > 18:pass

else:pass

#类流程代码块

classFoo:def __init__(self, name, age, ):

self.name=name

self.age=agedefget_name(self):return self.name

#函数流程代码块

deffunc(x, y):"""这个函数说明

:param x: 乘数

:param y: 乘数

:return: 返回乘积"""

return x * y

ps:Python最大的特色就是使用语法时使用缩进来表示代码块,不需要使用大括号({ })。

缩进的空格数是可变的,但是同一个代码块的语句必须抱哈相同的缩进空格数

缩进空格数不一致会抛出异常

File "test.py", line 6

print ("False")

IndentationError: unindent doesnot match any outer indentation level

PEP8:建议使用四个空格作为缩进,再文本编辑器中,需要设置Tab自定转换为4个空格。Pycharm中已经自动转换。Linux中使用bim编辑器请使用空格不能使用tab建。

同一行协多条语句:

Python一行通常就是一条语句,一条语句通常也不会超过一行。其实,从语法层面Python灭有完全禁止在一行中使用多条语句,也可以使用分号实现多条语句在一行,比如:

import time;x =1;time.time()

上面这一行是三条语句,用分号隔开,强烈不建议这样做,会导致阅读困难、维护耗时、容易出错。

多行语句:

上面是多行语句在一行,如果太长也是可用用多行的,可以使用反斜杠(\)来表示多行语句,比如

string = "i love this country,"\+"because it is very beautiful!"\+ "how do you think about it?"\+ "Do you like it too?"

在[],{},()中的多行语句,可以不需要使用反斜杠(\),比如;

sum_int = (1,2,3,4)print(sum_int)

PEP8建议每一行的字符不超过79个字符。

五、pass语句

pass语句是占位语句,表示什么也不做,只是为了保证语法的正确性,以下场景可以使用pass语句。

1.后边的代码不知道怎么写的时候。

2.不需要写代码细节的时候。

3.语法必须写又没有实际内容可写的时候。

4.其他需要的场景。

if name > 18:pass #什么也不做不会出现语法错误

六、空白字符与空白行

空白行、空白字符与代码缩进不同,并不是Python语法的一部分,空行或者空白字符会被当做空气忽略。连续的空行和空白字符和单独的空白行是没有区别的。

PEP8对于空行留白有专门的建议。

函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。

变量赋值的时候等号左右各给一个空白。逗号后面跟一个空白。

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

classFoo:pass

deffunc(a, b):pass

if __name__ == '__main__':pass

七、字符串的表示形式

字符串,表示一段连续的字符,可以是有意义的单词、词组、语句、也可以使无意义的字符组合,不在于它内部是由什么组成的,而在于他是否被引号引起来的。

比如:name可能是一个变量,但是"name"肯定是一个字符串

在Python中被引号括起来的都是字符串,这个引号可以使单引号,双引号,甚至3引号。

Python中单引号和双引号的作用是完全相同的。但是注意:在其他语言中双引号引起来的才是字符串,单引号引起来的是字符,列如C语言 列如json,json格式转换的时候,经常发生使用单引号,导致转换失败的问题。

使用三引号 ''' 或 """ 可以指定一个多行字符串。

转义符 “\”,用来特殊转义,列如\r\n,\\。他可以将引号转义为单纯的引号,没有任何作用的引号。

原生字符串:通过支付长春前加r或R,如r"No escape is required \n",表示这个字符串里的斜杠不需要转义,等同意自身。列子中的\n会显示出来,并且不换行。

unicode字符串:加前缀u或U,u"No escape is required \n +1"。

bytes类型:加前缀b,如:b"No escape is required",字符串中带有中文是不可以,字符串是不可变类型。

python中变量名字的第一个字符必须是_基础语法 - 小黑_9527 - 博客园相关推荐

  1. 『Python开发实战菜鸟教程』实战篇:爬虫快速入门——统计分析CSDN与博客园博客阅读数据

    文章目录 0x01:引子 首先介绍一下网络爬虫是什么,可以用来做什么? 这里简单探讨一下网络爬虫的合法性 正式进入爬虫实战前,需要我们了解下网页结构 HTML CSS JScript 写一个简单的 H ...

  2. python基础论文_Python基础 - 文章分类 - rwwh - 博客园

    文章分类 - Python基础 摘要:参考 https://www.cnblogs.com/yuanchenqi/articles/5722574.html https://www.cnblogs.c ...

  3. python密码破解工具_一个最简单的博客园文章密码暴力破解器-python3实现

    一个最简单的博客园文章密码暴力破解器-python3实现 我之前想写路由器的密码暴力破解器,我手上只有极路由,发现极路由有安全限制,只能允许连续10密码错误,所以我改拿博客园练手. 博客园的博客有个功 ...

  4. mysql中堆和栈_堆和栈 - 矮油~ - 博客园

    在计算机领域,堆栈是一个不容忽视的概念,我们编写的C语言程序基本上都要用到.但对于很多的初学着来说,堆栈是一个很模糊的概念. 堆栈:一种数据结构.一个在程序运行时用于存放的地方,这可能是很多初学者的认 ...

  5. python的整数取反_整数取反 - yunduoyun - 博客园

    给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−2^31, 2^31 − 1].请根据这个假设,如 ...

  6. python中变量的作用域有几种_Python中变量的作用域(variable scope)

    http://www.crifan.com/summary_python_variable_effective_scope/ 解释python中变量的作用域 示例: 1.代码版 #!/usr/bin/ ...

  7. python中变量,python中变量的概念

    python中变量的概念 在python中,变量就是一种标识符, 它是数据的名字,更专业的理解,变量是内存中数据的引用, 编程语言里的变量和初中学习代数时的方程变量很相似. 前面学习数字类型,bool ...

  8. python有效变量名banana,python中变量名

    Python中变量名后面加冒号是什么意思? def func(z,arg2=''): a:z=None print(a) x=func('22','3') #print出来这是Python 3.5中引 ...

  9. python赋值语句对错_深入理解Python中变量赋值的问题

    前言 在Python中变量名规则与其他大多数高级语言一样,都是受C语言影响的,另外变量名是大小写敏感的. Python是动态类型语言,也就是说不需要预先声明变量类型,变量的类型和值在赋值那一刻被初始化 ...

最新文章

  1. 数据通信技术(七:RIP路由水平分割配置)
  2. linux iscsi
  3. 智能指针——auto_ptr
  4. react-navigation 跨 tabs 返回首页
  5. WinCE 5.0 virtual memory space
  6. vfp 调用 mysql uft-8 connstring_(最全的数据库连接字符串)connectionstring
  7. ubuntu16.04安装python.h_ubuntu16.04 下基于 Python 的 OpenCV 的安装
  8. mysql 主从 索引_Mysql繁忙主从库在线修改表结构与添加索引问题
  9. Tomcat部署到CentOS7
  10. 查看javajdk版本
  11. 小区报修管理系统c语言,小区物业报修管理系统的设计与实现.pdf
  12. 系统概要设计阶段2019/10/22软件工程
  13. Docker安装Yapi
  14. 计算机拓扑结构定义,计算机网络拓扑结构的定义
  15. java.lang.IllegalArgumentException: Receiver not registered:
  16. BI可视化分析之Pentaho
  17. C++ QT开发人机象棋(剪枝算法)
  18. 利用CCA进行故障检测
  19. su与su - 的区别
  20. ECharts实现省市地图切换

热门文章

  1. 电子工程师比掌握的知识
  2. DTrace User Guide
  3. 基于安装django报错信息的处理方案
  4. 计算机控制系统 裴润,自动控制原理(上下)
  5. 最新,阿里腾讯后端社招面试21问梳理详解
  6. (18) DeepCut DeeperCut vote(have a rough understanding)
  7. 2023快乐学习日记(好日子今天是个好日子)1/2
  8. 记Mininet安装
  9. ebpf中的percpu map的注意事项与剖析
  10. java文本输入框_Java开发笔记(一百三十九)JavaFX的输入框