学习目录
首先变量命名的通用原则
变量的常见用法
·定义普通变量
·同时赋值多个变量
·变量解包
·单下划线变量名_
查看变量类型
查看变量的内存地址
变量是编程语言最基础的知识,也是最难的知识,主要体现在变量命名。在计算机科学领域有一句广为流传格言:
计算机科学领域只有两件难事:缓存失效和命名。
--- Phil Karlton
不过大家也不用怕,接下来我们一起学习变量。
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
因为python是一门动态类型的编程语言,无须事先声明变量类型,比如整形int 字符串str 或者浮点型float,又或者list dict set tuple等,直接对变量赋值即可。
#同时赋值两个变量
>>>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
#个数不一致 就报错
>>>username_nj,username_sh,username_zj = usernames
Traceback (most recent call last):
File "
username_nj,username_sh,username_zj = usernames
ValueError: not enough values to unpack (expected 3, got 2)
#定义一个嵌套列表
>>>username_info = ['jams',['南京','某小区']]
#在变量前面使用括号接收嵌套的变量内容
>>>username,(city,address) =username_info
#打印
>>>print(username,city,address)
jams 南京 某小区
支持使用*表达式接收变量内容,并将接收的变量内容以列表展示。
>>>username_info = ['jams','man','180cm',18,['南京','某小区']]
#定义*personinfo接收人员信息
>>>username,*personinfo,address=username_info
#打印
>>>print(personinfo)
#结果展示为一个列表
['man', '180cm', 18]
当然列表也可以使用切片进行赋值
#定义一个数字列表
>>>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))
#定义字符串变量>>>strvalue = 'age' >>>print(type(strvalue))
#定义列表变量
>>>numbers = [2,33,44,22,455]
>>>print(type(numbers))
使用内置函数id查看变量的内存地址
>>>numbers = [2,33,44,22,455]
>>>print(id(numbers))
4303168576
#多个变量指向同一个内存地址
>>>username1=username2='jams'
>>>print(id(username1),id(username2)) 4348151280 4348151280
----感谢读者的阅读和学习,谢谢大家。
共勉: 东汉·班固《汉书·枚乘传》:“泰山之管穿石,单极之绠断干。水非石之钻,索非木之锯,渐靡使之然也。”
-----指水滴不断地滴,可以滴穿石头;
-----比喻坚持不懈,集细微的力量也能成就难能的功劳。