学习目录
变量命名的通用原则
变量的常见用法
·定义普通变量
·同时赋值多个变量
·变量解包
·单下划线变量名_
查看变量类型
查看变量的内存地址
前言
变量是编程语言最基础的知识,也是最难的知识,主要体现在变量命名。在计算机科学领域有一句广为流传格言:
计算机科学领域只有两件难事:缓存失效和命名。
--- Phil Karlton
变量命名确实让人头疼,平常使用中经常会出现乱命名的现象,但是在使用时我们还是要了解下 命名规范和规则,以便让我们看起来专业一些。
因为python是一门动态类型的编程语言,无须事先声明变量类型,比如整形int 字符串str 或者浮点型float,又或者list dict set tuple等,直接对变量赋值即可。
变量命名的通用原则
1 遵循PEP 8原则。
1)一是通过大小写界定单词的驼峰命名法。例如UserName。
2)二是通过下划线连接的蛇形命名法。例如user_name,MAX_VALUE
为了保持代码可读性,不管是用哪个方法,最重要是保持统一。
2 注意大小写。
Python的变量名是区分大小写的,例如:name和Name就是两个变量名,而非相同变量。
3 描述性要强,要让读者看起来更轻松更明了。例如定义username='jams',比aaa='jams'更清晰。
4 避免定义过长的变量名。
例如定义
users_needed_update_points_level3=3,描述了为不同级别的用户更新积分的设置,其实可以更简单的提取关键字,定义为points_level3=3。
变量的常见用法
#号是注释语句
username = '章三'
#打印
print('hello {}'.format(username))
hello 章三
-
赋值给两个变量
username1=username2='jams'
print(username1,username2)
jams jams
同时赋值两个变量
username,age = '里斯本',14
#打印
print('姓名:{},年龄:{}'.format(username,age))
姓名:里斯本,年龄:14
交换两个变量
username_nj='jams'
username_sh='lizy'
username_nj,username_sh = username_sh,username_nj
#交换变量后打印
print(username_nj,username_sh)
lizy jams
变量解包是一种特殊赋值操作,可以把一个可迭代对象(比如list)的成员,一次性赋值给多个变量。
- 定义一个普通列表
usernames = ['jams','lizy']
变量解包,赋值给两个变量
username_nj,username_sh = usernames
#注意 左边的变量个数需要与右边的可迭代对象个数一致,否则报错
print(username_nj,username_sh)
jams lizy
#个数不一致 就报错,比如赋值给3个变量
username_nj,username_sh,username_zj = usernames
Traceback (most recent call last):
File "<pyshell#23>", line 1, in <module>
username_nj,username_sh,username_zj = usernames
ValueError: not enough values to unpack (expected 3, got 2)
- 定义一个嵌套列表
username_info = ['jams',['南京','某小区']]
1)在变量前面使用括号接收嵌套的变量内容
username,(city,address) =username_info
#打印
print(username,city,address)
jams 南京 某小区
2)支持使用*表达式接收变量内容,并将接收的变量内容以列表展示。
username_info = ['jams','man','180cm',18,['南京','某小区']]
定义*personinfo接收人员信息
username,*personinfo,address=username_info
#打印
print(personinfo)
#结果展示为一个列表
['man', '180cm', 18]
3)列表也可以使用切片进行赋值
#定义一个数字列表
numbers = [2,33,44,22,455]
#获取列表中第2个和第3个值赋值给新变量
new_numbers = numbers[2:4]
#打印
print(new_numbers)
[44, 22]
使用单下划线变量忽略某些变量
numbers = [2,33,44,22,455]
#忽略第2个及后面的所有变量
number,*_ =numbers
#打印变量number
print(number)
2
#打印变量_
print(_)
[33, 44, 22, 455]
查看变量类型
使用内置函数type查看变量的类型
#定义整形变量
number = 1
print(type(number))
<class 'int'>
#定义字符串变量
strvalue = 'age'
print(type(strvalue))
<class 'str'>
#定义列表变量
numbers = [2,33,44,22,455]
print(type(numbers))
<class 'list'>
查看变量的内存地址
使用内置函数id查看变量的内存地址
numbers = [2,33,44,22,455]
print(id(numbers))
4303168576
多个变量指向同一个内存地址
username1=username2='jams'
print(id(username1),id(username2))
4348151280 4348151280
----感谢读者的阅读和学习,谢谢大家。
共勉: 东汉·班固《汉书·枚乘传》:“泰山之管穿石,单极之绠断干。水非石之钻,索非木之锯,渐靡使之然也。”
-----指水滴不断地滴,可以滴穿石头;
-----比喻坚持不懈,集细微的力量也能成就难能的功劳。