1. 变量和常量
1.1 变量
在程序运行中,值会发生改变的量
-
在python中变量不需要声明类型
-
a = 10
b = “字符串”
-
-
变量使用"="进行赋值
-
每个变量在使用之前必须被赋值,变量赋值后才会被创建
-
>>> a Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'a' is not defined >>> a = 10 >>> c.append(1) Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'c' is not defined
-
-
在python中,一切事物都是对象,变量引用的是对象或者说是对象中内存中的地址
-
在python中变量本身没有数据类型的概念
-
python中变量的赋值允许连等
-
a = b = c = 1
-
-
python中允许多变量赋值
-
a, b, c = 1, 2, 3
-
1.2 常量
在程序运行中,值不会发送变化的量
- python 无法从语法上定义常量
- python 没有提供关键字使常量不被修改
- python 只是将变量当作常量使用,主观上不去修改它
注:常量通常大写,放在代码的最上部,作全局使用
2 基础语法
2.1 标识符
标识符就是为变量、常量、函数、类等对象取的名字
这里要注意,python语言在任何场景下都是要严格区分大小写的
python中标识符的命名规则如下:
-
第一个字符必须是英文字母或下划线"_"
例如:a、_a、A…
其次,在 python3 全面支持Unicode后,python对于中文的支持越来越好,变量名可以使用中文,但是请务必不要这么做,要将**第一个字符必须是英文字母或下划线"_"**当作原则来执行
另外,以下划线开头的标识符通常都是有特殊含义的,例如 field 代表禁止外部访问的类成员,需要通过提供的接口访问,不能直接导入;双下划线开头的,代表类的私有成员;以双下划线开头和结尾的(__field_) 是python里面特殊方法专用的标识,如 __init__()方法代表构造函数,等等
-
标识符的其他字符由字母、数字和下划线组成
-
标识符大小写敏感
-
变量名全小写,常量名全大写
-
函数和方法名用小写加下划线组成
例如:student_num
-
类名用大写驼峰
-
模块和包名全小写
-
变量命名不要用关键字和内置函数的名字
>>> import keyword >>> keyword.kwlist ['False', 'None', 'True', '__peg_parser__', 'and', 'as', 'assert', 'async', 'await', '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']
2.2 保留字
常见的保留字
False | True | class | def |
---|---|---|---|
if | else | elif | import |
for | where | return | yield |
in | not | is | raise |
None | continue | break | from |
and | or | with | as |
try | except | finally | pass |
lambda | del | global | nonlocal |
assert |
2.3 注释
2.3.1 单行注释
python 中以 # 为单行注释的开始
# 这是一个单行注释 def demo(): pass # pass是一个占位符 表示什么也不做
2.3.2 多行注释
python中没有真正意义上的的多行注释(块注释)语法,我们一般用连续多行的 # 假装这是一个多行的注释
# 这是多行注释的第一行 # 这是多行注释的第二行 # 这是多行注释的第三行
2.3.3 文档注释
文档注释是由六个引号组成的每三个一组,这个注释有专门的用处,用于为__doc__提供文档内容,用于自动生成说明文档
def add(num1,num2) """ 这是函数的文档注释 :param num1 :param num2 :return sum """ return num1+num2
注:这种注释必须紧跟在定义体下面,不能在任意位置
2.4 代码头两行
通常,python脚本的头两行都是以这样的格式出现的
#! /usr/bin/env python # -*- coding:utf-8 -*-
2.4.1 第一行
用于指定python环境,Linux专用,Windows不需要
env模式下,系统会自动使用环境变量里指向的python。
#! /usr/bin/python3.7
这会指定使用的python版本,一旦你的环境中没有,就会报错
2.4.2 第二行
用于指定代码的编码格式,注意这里是指源码的编码格式
2.5 语句与缩进
2.5.1 语句
在代码中能够完整表达某个操作或逻辑的最短代码,被称为语句
在python中标准的语句不需要使用分号来表示语句的结束,只需要换行就行了
代码块:为了完成特定的功能的一组语句构成一个代码块
python的特色语法就是不使用{}来划定代码块的范围,而是使用缩进
在编写python代码时我建议一行只写一条语句,当然一行也可以写多条语句,例如:
a = 10;print(a);
这样写是没问题的,但是不建议,这样的代码,不利于阅读以及后期的维护。
在一些特殊的情况向,还会出现多行语句,例如:
b = "这是一个多行语句, " \
+ "一行放不下,为了方便阅读," \
+ "就多写几行"
当一行语句太长的时候,我们可以使用\
来实现多行语句
在[]
、{}
和()
中的多行语句,可以不使用\
,直接回车,接着写,例如:
a = {
"name":"剑姬",
"age":10
}
注:PEP8建议:每一行的字符不超过79个。该换行时咱就换行!
2.5.2 缩进
缩进就是大家都知道,代码开头几个空格就是几个缩进
在python中,要求组成代码块的语句的缩进要是相同的,如果不相同的话会抛出异常(IndentationError)
在python官方规范(PEP8)中,建议大家使用4个空格作为缩进
python正确缩进案例:
-
if代码块
if a < 10: a = 1 elif a > 10: a = -1 print(a) else: a = 0
-
for代码块
for i in range(10): if i % 2 == 0: print(i) else: continue print("over") # for 执行完毕执行此行代码