python中变量名字的第一个字符必须是_基础语法 - 小黑_9527 - 博客园
一、标识符
所谓的标识符就是对变量、常量、函数、类等对象起的名字。
必须说明的是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 - 博客园相关推荐
- 『Python开发实战菜鸟教程』实战篇:爬虫快速入门——统计分析CSDN与博客园博客阅读数据
文章目录 0x01:引子 首先介绍一下网络爬虫是什么,可以用来做什么? 这里简单探讨一下网络爬虫的合法性 正式进入爬虫实战前,需要我们了解下网页结构 HTML CSS JScript 写一个简单的 H ...
- python基础论文_Python基础 - 文章分类 - rwwh - 博客园
文章分类 - Python基础 摘要:参考 https://www.cnblogs.com/yuanchenqi/articles/5722574.html https://www.cnblogs.c ...
- python密码破解工具_一个最简单的博客园文章密码暴力破解器-python3实现
一个最简单的博客园文章密码暴力破解器-python3实现 我之前想写路由器的密码暴力破解器,我手上只有极路由,发现极路由有安全限制,只能允许连续10密码错误,所以我改拿博客园练手. 博客园的博客有个功 ...
- mysql中堆和栈_堆和栈 - 矮油~ - 博客园
在计算机领域,堆栈是一个不容忽视的概念,我们编写的C语言程序基本上都要用到.但对于很多的初学着来说,堆栈是一个很模糊的概念. 堆栈:一种数据结构.一个在程序运行时用于存放的地方,这可能是很多初学者的认 ...
- python的整数取反_整数取反 - yunduoyun - 博客园
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−2^31, 2^31 − 1].请根据这个假设,如 ...
- python中变量的作用域有几种_Python中变量的作用域(variable scope)
http://www.crifan.com/summary_python_variable_effective_scope/ 解释python中变量的作用域 示例: 1.代码版 #!/usr/bin/ ...
- python中变量,python中变量的概念
python中变量的概念 在python中,变量就是一种标识符, 它是数据的名字,更专业的理解,变量是内存中数据的引用, 编程语言里的变量和初中学习代数时的方程变量很相似. 前面学习数字类型,bool ...
- python有效变量名banana,python中变量名
Python中变量名后面加冒号是什么意思? def func(z,arg2=''): a:z=None print(a) x=func('22','3') #print出来这是Python 3.5中引 ...
- python赋值语句对错_深入理解Python中变量赋值的问题
前言 在Python中变量名规则与其他大多数高级语言一样,都是受C语言影响的,另外变量名是大小写敏感的. Python是动态类型语言,也就是说不需要预先声明变量类型,变量的类型和值在赋值那一刻被初始化 ...
最新文章
- 数据通信技术(七:RIP路由水平分割配置)
- linux iscsi
- 智能指针——auto_ptr
- react-navigation 跨 tabs 返回首页
- WinCE 5.0 virtual memory space
- vfp 调用 mysql uft-8 connstring_(最全的数据库连接字符串)connectionstring
- ubuntu16.04安装python.h_ubuntu16.04 下基于 Python 的 OpenCV 的安装
- mysql 主从 索引_Mysql繁忙主从库在线修改表结构与添加索引问题
- Tomcat部署到CentOS7
- 查看javajdk版本
- 小区报修管理系统c语言,小区物业报修管理系统的设计与实现.pdf
- 系统概要设计阶段2019/10/22软件工程
- Docker安装Yapi
- 计算机拓扑结构定义,计算机网络拓扑结构的定义
- java.lang.IllegalArgumentException: Receiver not registered:
- BI可视化分析之Pentaho
- C++ QT开发人机象棋(剪枝算法)
- 利用CCA进行故障检测
- su与su - 的区别
- ECharts实现省市地图切换