变量

'''

'''
# 变量是用来接收数据的,那么变量的数据类型有哪些呢?
#数据类型:基本数值类型:整数:浮点数:复数:布尔:字符串:空值
           # 组合数据类型:列表:元组集合字典

# 声明:
i=12
f=12.0
s="12.0"
b=True
n=None
print(type(i),type(f),type(s),type(b),type(n))#<class 'int'> <class 'float'> <class 'str'> <class 'bool'> <class 'NoneType'>
# 存储:
# 常量:
#        赋予过的值即“l”都存在一个固定的地方,变量接收时,变量直接指向该地方id("l");而在整个程序中它的位置不在发生改变
#        ,当解释器解释这行代码后,他就在内存中有了固定的地址,下一次,再赋值给别的变量后,就直接指向该地址,直至程序结束
s1="l"
s2="l"
print(id(s1))#2347194100288       另一个文件中的“l”的地址:2659071142464
print(id(s2))#2347194100288

t1=True
t2=True
print(id(t1),id(t2))#140728010590544 140728010590544
#         引用类型:每创建一个新的组合类型,都会重新分配一个地址

tu=[]
print(id(tu))#2616083899080
tu=[]
print(id(tu))#2616113500744
# 复制修改
print("-------id i before------------",id(i))#140728011121840
i=10#将一个常量赋值给i,i被修改
#         字符串:#字符串指向一个常量时,直接指向地址,做连接操作时会重新分配地址给新的字符串
s=s+"j"
print("------id s-------",s,id(s))#12.0 3067048370728
print(id("12.0j"))#2254279773016
# 字符串进行链接操作时,也换了新的地址,浪费了空间





# print("-------id i after------------",id(i))#140728011121776
# # 地址发生了变化
# print("-------id 12------------",id(12))#140728011121840
# print("-------id 10------------",id(10))#140728011121776
# # 由此可知,内部存储的地址改变了

i=s#将一个变量赋值给i,i被修改,i与s都指向了该数据
print("------id s-------",s,id(s))#12.0 3067048370728
print("------id i-------",i,id(i))#12.0 3067048370728
# 变量中存储的地址发生变化,指向了新的地址
# ???


r=(1)
print(type(r))#<class 'int'>
print(r)


print(type({1}))#<class 'set'>
# r=set(1)#'int' object is not iterable
# 括号内接受一组参数,然后遍历循环给组合数据类型,
# 但整数类型不可以,因为它没有循环,同理,浮点数、复数、布尔值都不可以,
# 但字符串可以如“1”,因为python中,“1”下表是在一定范围内可以循环的

# 讨论字符串的下标
s="1"
print("------s下标------------------",s[0])#------s下标------------------ 1
print("------s下标------------------",s[-1])#------s下标------------------ 1
# r=list(1)# 'int' object is not iterable
# r=list(1,)#'int' object is not iterable
# t=tuple(1,)#'int' object is not iterable
t=(1,)
print(type(t))#<class 'tuple'>
t=(1)
print(type(t))#<class 'int'>
t=([1])
print(type(t))#<class 'list'>
# 括号会被解释器认为四则运算,所以如果定义组合数据类型中有个元素时,要加逗号


# 局部变量扩展范围
while True:
    i=0
    if i==0:
        break
print(i)






 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值