2-1-0python语法基础--基础-python语法,变量,数据类型对比,编程规范
python基础语法
# 1,关于注释:
单行注释:#, 多行注释:"""" """
# 2,严格区分大小写
比如打印print("123") ----- 不能写成大写的Print("123")
# 3,严格的缩进
比如打印print("123") ----- 前面不能有空格,有空格就不对,
python基础语法:变量注释:变量后加冒号
见过一个大佬写的代码是这样的:
user: User = User.objects.filter(id=data.get('uid')).first()
变量名后面的冒号是:类型注解,3.6以后加入的,冒号右边是类型,仅仅是注释,有些鸡肋
变量注释的语法:注释变量类型,明确指出变量类型,方便帮助复杂案例中的类型推断。
var: type = value 其实本质上就是 var = value # type就是var期望的类型
类型注释只是一种提示,并非强制的,Python解释器不会去校验value的类型是否真的是type
例如:a: str = 10 这样是没有错的,python解释器在执行时会把a当作int来操作(type(a)——int)。 这不像是 C 语言中 int a(a必须是int类型)。
python基础语法:函数注释
可做为函数额外的注释来用。函数注释是一个可选功能,它允许在函数参数和返回值中添加任意的元数据。无论是 Python 本身还是标准库,都使用了函数注释,第三方项目可以很方便的使用函数注释来进行文档编写、类型检查、或者是其他用途。
函数注释包括:
参数注释:以冒号(:)标记
返回值注释:以 -> 标记
def foo(a: expression, b: expression = 5) -> expression:
...
示例:
def func(a: 'haha', b: (1, 10), c: float) -> int:
return a + b + c
print(func(1, 2, 3))
>>> 6
这些注释信息都是函数的元信息,存储在函数的__annotations__属性里。
需要注意,注解对Python解释器没任何意义,python对不做检查,不做强制,不做验证!什么都不做。
python的常量和变量
1,常量是不能被赋值的,变量可以被赋值
比如13 = 13 ,这是会报错的,因为13是一个常量,不能被赋值,
2,变量的赋值是使用的等于号,=
num = 13 ,这个就是变量赋值,
python变量定义的要求和规范
1,变量命名的要求
第一,标识符只能是字母数字下滑线组成,
第二,不能是数字开头,3num=13,这种就不行,
第三,标识符不能是关键字,
import keyword
print(keyword.kwlist) #可以查看有哪些关键字,
第四,标识符区分大小写,Num=14
Google Python命名规范
常用
模块名写法: module_name ; 模块名和包名,全部小写+下划线驼峰,module_name package_name
包名写法: package_name ;
类名: ClassName ;类的命名采用大驼峰命名法,这一点基本可以达成共识,首字母大写,如CamelCase;
方法名: method_name ;
异常名: ExceptionName ; 类名称,异常,首字母大写+大写式驼峰,class ClassName: ,ExceptionName
函数名: function_name ;函数的命名采用下划线分隔的小写字母,这种也是达成共识了,如separateed_by_underscores;
全局常量名: GLOBAL_CONSTANT_NAME ; 全局变量、常量,全部使用大写字母+下划线驼峰,GLOBAL_VAR_NAME,CONSTANT_NAME
全局变量名: global_var_name ; 方法名,函数名,其余变量,参数,实例,全部小写+下划线驼峰,method_name,function_name,instance_var_name, function_parameter_name, local_var_name
实例名: instance_var_name ;
函数参数名: function_parameter_name ;
局部变量名: local_var_name .函数名,变量名和文件名应该是描述性的,尽量避免缩写,特别要避免使用非项目人员不清楚难以理解的缩写,不要通过删除单词中的字母来进行缩写. 始终使用 .py 作为文件后缀名,不要用破折号.
其他:
项目名称,首字母大写+大写式驼峰,ProjectName
文件名:全小写,可使用下划线
python变量类型
# 一共是7种数据类型
# 1,Numbers(数字)
num = 10 # int整数
money=123.5 # 浮点数
data=1+2j # 复数:用来描述平面上的一个坐标,x是1,y是2
# long1=0122L
# long 类型只存在于 Python2.X 版本中,在 2.2 以后的版本中,int 类型数据溢出后会自动转为long类型。在 Python3.X 版本中 long 类型被移除,使用 int 替代。
#############################
# 2,Boolean(布尔值)
isnum=True
# 3,String(字符串)
name='andy'
# 4,List(列表)
list1=[1,2,3]
# 5,set集合
set1= {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
# 6,Tuple(元组)
tuple1=(1,2)
# 7,Dictionary(字典)
dict1={"name":"andy","age":18}
字符串、列表、元组、字典每个常用的5个方法?
1,字符串 split/strip/replace/find/index ...
2,列表 append/extend/insert/push/pop/reverse/sort ...
3,元组 len/max/min/count/index ...
4,字典 keys/values/pop/clear/del ...
5,集合 add/remove/clear/交集&、并集 |、差集 -
操作 | 数字 | 字符串 | 元组 | 集合 | 列表 | 字典 |
---|---|---|---|---|---|---|
remove | × | × | × | √(按元素) | √ | √ |
pop | × | × | × | √(随机) | √ | √(传入key) |
clear | × | × | × | √ | √ | √ |
切片 | × | √ | √ | × | √ | × |
count | × | √ | √ | × | √ | × |
index | × | √ | √ | × | √ | × |
+ | √ | √ | √ | × | √(等同extend) | × |
len | × | √ | √ | √ | √ | √ |
max | × | √ | √ | √ | √ | √ |
min | × | √ | √ | √ | √ | √ |
update | × | × | × | √ | × | √ |
copy | × | × | × | √ | √ | √ |
-
1,关于切片和count和index和加号+
集合是无序的,字典也是无序的,字典是映射,所以没有切片,只有有序序列可以切片
字符串,元组,列表,都是序列
但是有可变序列和不可变序列的区分,字符串和元组是不可变序列,列表是可变序列,
序列才可以加减, -
2,关于remove和pop和clear
这种都是真的的可变的元素,所以集合,列表,字典,都有这两个方法,
但是字符串和元组是不可变的,所以没有这两个方法, -
3,元组的内置方法是最少的,
只有count和index
技术改变命运