Python和C中变量存储的区别
Python中变量名没有数据类型的概念,数据类型是属于对象,数据类型决定了对象在内存中的存储方式和能够进行的操作
变量引用对象,在使用前必须赋值
变量在第一次创建的过程中被创建,再次出现时直接调用
变量的地址会发生变化
c语言中,声明一个变量并不会分配空间和,而是在初始化时给其分配空间,这片空间的名字为变量名,给其赋新值时,把新值拷贝到现有内存中,地址不会发生变化
1.数据类型
可通过for循环是否支持来判断,for循环不支持的类型为标量,支持的数据类型为非标量(组合数据类型)
for tmp in 非标量:
- 1.1标量
标量类型对象是一种基本对象类型,又叫原子类型,指的是一类数据和它们操作的集合
bool :true
int :10
float:10.11
complex: 10+10j
None
(1)标量之间的类型转换
float(123) = 123.0
int(1.234) = 1
int(True) = 1
float(False) = 0.0
bool(123) = True
(2)数值类型和字符串的转换
str(1.234) = '1.234'
int("1") = 1
bool("False") = True
bool('') = False
type(eval("1234")) = int
type(eval('12.45')) = float
1.1.1int
十进制:123
二进制:0b01111011
八进制:0o123
十六进制:0x123
//任意进制转十进制
int("要转的数据字符串",base = 该字符串的进制)
print(要转的数据)
//任意进制转二进制
bin(数)
//任意进制转八进制
oct(数)
//任意进制转十六进制
hex(数)
1.1.2float
不是很精确,慎用
尽量不要用浮点数进行比较,一定要比较需要设置比较范围,来返回ture或false
//可查看浮点类型的详细信息
//数值范围和小数精度受计算机系统影响
import sys
print(sys_info)
//计算近似值,返回离ndigits最近的偶数
//如果number的小数位数>ndigits,则四舍五入保留ndigits位小数
round(number,ndigits)
round(2.5,0) = 2.0
round(2,3) = 2
round(2.675, 2) = 2.67
round(2.67568888,3) = 2.676
独特的运算
次方和整除
3**2:3的2次方
3//2:整除,返回结果的整数部分,1
总结:Python中变量的内存分配,数据类型中标量的说明,下一篇是对数据类型中非标量的说明