Python之基础数据类型
Python 中使用缩进来表示程序的格式,还可以使用空格键。一个缩进代表四个空格键,这是 python 中唯一可以控制程序结构的方法。
flag = False
name = 'luren'
if name == 'python':
flag = True
print('welcome!')
else:
print(name)
可以看到缩进类似于大括号,可以进行结构控制。而且 if 和 else 不需要保持缩进一致。一般都使用 tab 来进行缩进,保持统一。反缩进使用 shift 加 tab ,并且要从头开始框选,不能在中间框选。
注释使用#,多行注释使用三个单引号或三个双引号,可以使用ctrl加1来快速进行一行注释。
当注释了一部分代码之后,就不要在中间继续写一些其他的代码,否则会导致无法取消注释。
utf-8 是一种编码格式,通常使用这种编码格式。
python 标识符命名和其他语言类似,尽量不使用中文,不可以使用数字开头,中间不能有空格,如果变量名过长使用驼峰命名法。常量使用大写方式命名。区分大小写,并且对长度没有限制。
保留字会显示成蓝色,它是内置的一些标识符。还有一些内置方法,显示成紫色。内置方法可以进行赋值,保留字不可以进行赋值,保留字大约有30多个。
保留字 True 和 1 等价,False 和 0 等价,它们只是类型不同,可以通过 int 转换成数字。可以使用 type 来观察传入的变量类型。
保留字 None 属于独有的一个 NoneType 类型。表示这个数据为空,可以进行赋值,但不可以创建其他的 NoneType 对象。
内建函数 help 可以查看传入数据的信息。
基本数据类型分为数字,布尔,NoneType,组合数据类型,字符串就在这里面。
a = 3
b = 1.3
c = 1+3j
print(a, b, c)
数字类型分为整型,浮点型,复数类型。声明一个变量时必须要进行复制,如果没有值就赋值为 None 。整型没有取值范围限制。浮点型是带有小数,或小数点的数字。有一个数值范围,精度的要求,它和操作系统有关。复数是 -1 开平方之后得到 j ,不能直接写一个 j ,必须写 1 j 。math 库里面不包含复数运算。
pow() 表示多少次方,和阶乘一样,比较消耗内存需要注意。
0x,0X,0b,0B,0o,0O,表示16进制,2进制,8进制,在输入这些进制之后,输出都会转换为10进制。
id(3)
Out[49]: 4339049040
a=3
b=3
id(a)
Out[52]: 4339049040
id(b)
Out[53]: 4339049040
id(c)
Out[54]: 5907738544
hex(4339049040)
Out[55]: '0x102a0a250'
oct(4339049040)
Out[56]: '0o40250121120'
bin(4339049040)
Out[57]: '0b100000010101000001010001001010000'
内建函数 id 用来查看数据对象的内存地址,即身份。上面的例子中 a ,b 都指向同一个内存地址。
浮点数小数点后可以不写数字,1e5,1E5 表示科学计数法。
z=1.24e3+39j
z.real
Out[61]: 1240.0
z.imag
Out[62]: 39.0
复数类型可以获取实数部分 real ,获取虚数部分 imag 。
不同数字进行混合运算的时候,会以最宽的类型为最后运算结果。三种类型从整型,浮点型,复数类型越来越宽。除法的结果是一个真实值,如果想得到整数值,使用 // 来得到。
还有一些数学函数,abs,取绝对值,divmod,取整除和取余,pow,次方运算,round,四舍五入运算,max,取最大值,min,取最小值。
还可以进行数字类型转换,bool 转换的时候只有 0 为 False ,其他值都为 True 。int('15',16) 可以再加一个参数进行进制转换,base 从 3 到 36 都可以转换,或者为 0 。
浮点数可以转换为复数,复数不可以转换为浮点数,因为会出现数据压缩。
python 中没有字符,只有字符串,实际上是由几个字符的数组组成了字符串。所以这些字符都有序号,可以正向从 0 开始,也可以反向从 -1 开始。字符串是用单引号或者双引号将字符扩了起来。
a,b=1,2
a
Out[84]: 1
b
Out[85]: 2
赋值使用等号,可以同时给多个变量进行赋值。
输入函数 input() ,可以往里面输入一些提示文字,不管输入什么,输出的都是一些字符串。
eval('a')
Out[87]: 1
eval('a+b')
Out[88]: 3
eval() 函数,可以将一段字符串当作程序去执行。
print(1);print(1)
1
1
print(1,end='');print(1,end='')
11
print("name %s,age %d" %(name,age))
name Alice,age 25
print("Number is",age)
Number is 25
print 函数有不带回车输出,格式化输出,拼接输出,格式化输出要注意格式符
"{1}{0}{1}".format("Hello","World")
Out[45]: 'WorldHelloWorld'
还可以使用 format 方法,字符串后面调用,可以按照对齐的方式输出字符串的格式。前面的部分是模版字符串。
"大家好"
还有 / 叫做正斜杠,表示除法和相对路径, \ 叫做反斜杠,表示转义和绝对路径。输出引号,就需要转义符。
string[:3]
Out[55]: 'hel'
切片操作是数据科学里的一个概念,是将一个多维数组进行切分,通过两个索引值得到一个切片后的数组。这个字数组不包含最后的索引位置。
"a"+"b"
Out[56]: 'ab'
"a"*4
Out[57]: 'aaaa'
字符串之间使用加法进行拼接,使用乘法进行重复。
len("hello world!")
Out[58]: 12
len() 函数会返回一个字符串的长度。包括标点和空格。返回的是一维数组。
str(123)
Out[59]: '123'
str() 函数可以将任意数据类型转换为字符串。
string= "hello world!"
for s in string:
print(s)
h
e
l
l
o
w
o
r
l
d
!
in 可以返回一个表示存在的布尔值,for in 组合可以遍历字符串中的每个字符。
"hello world!".ljust(20,"*")
Out[6]: 'hello world!********'
可以使用 ljust 和 rjust 进行字符串的左右对齐。如果没有指定,就使用空格来进行填充。如果指定长度小于原长度就直接返回。
"111abc111".strip("1")
Out[7]: 'abc'
string.split("o")
Out[9]: ['hell', ' w', 'rld!']
strip 是用来去掉重复或者空格,split 是用来进行切割。