Python学习杂记

python变量与C/C++有很大不同,具体表现为:

在Python创建变量时: int a =  20,int b = 20;此时a,b的地址是相同的,即是给20分配内存地址,而非给a,b分配,C/C++与此相反

python支持链式赋值:例:int  a=b=c=d=20;                C/C++不支持链式赋值,如上情况会说:b,c,d为未定义标识符,即只定义了a变量,后面的不定义

简单推测:可能定义变量的不同导致Python支持链式赋值,而C/C++不支持

        理由分析(不确定正误):因为Python的内存分配是分配给数值20的,a,b,c,d的id是相同的,故可以链式赋值,(类似C++中的指针,但不同,如上,给b重新赋值,其它变量的赋值不会改变)                而C++的内存分配是分配给变量的,故abcd四个变量地址不同,无法这样分配。疑惑:为什么无法分配?不是把同一个值赋给不同的地址?

解释:

csdn的ai说的:C不支持链式赋值是因为在C语言中,赋值操作的结果是一个右值,不能再次进行赋值。在链式赋值中,每个赋值操作的结果都是右值,而右值不能作为左值进行赋值操作。因此,C不支持链式赋值。

python还支持系列解包赋值:例:

a,b,c = 10,20,30        #定义abc三变量并赋值
print(a,b,c)
a,b,c = b,a,c           #交换a,b的值
print(a,b,c)

一个变量由三部分组成:标识(变量名?),类型(数据类型),值

bool类型:true,false        true为1,false为0

且可以作为十进制整形直接相加减

例:下方代码结果为:2,1

f = True
g = False

print( f + 1 )
print( g + 1 )

字符串类型:

可以使用单引号,双引号,三引号来定义

单引号和双引号中的内容只能在一行,三引号中内容可以分布在连续的多行

此处三引号指的是三个单引号,或三个双引号,均可实现此目的

强制类型转换:浮点型转整形直接抹小数,不谈四舍五入之类

                        文字类和小数类字符串,转不成整形

例:

a = '123'

print(int(a))

输出结果为123,因为是整数字符串 转整形

b = '123.123'

print(int(b))
结果为错误,因为字符串是小数串 转整形

c = 'Hello'

print(int(c))
结果为错误,因为是文字字符串 转整形

input小细节:input输入的数据均为字符串,无论输入什么数据,输出的都是字符串

例:

num1 = input('输入第一个数')
num2 = input('输入第二个数')
print(int(num1)+int(num2))


如果不强制类型转换,结果为1020,因为两个变量的数据类型都是字符串型,而不是预期的30

整除运算符://        例:11 // 2 结果为 5

幂运算: **        例:2**3 结果为 8                意为2的三次方

你可能感兴趣的:(学习)