初探Python3
查看数据的类型
使用type(varName)或者type(value)来判断,返回类型。
>>> type(1) #整型 <class 'int'> >>> type(1.0) #浮点数 <class 'float'> >>> type("hello") #字符串 <class 'str'> >>> type(6+4j) #复数 <class 'complex'> >>> type(["hello","world"]) #数组 <class 'list'> >>> type(False); type(True) #bool类型 True和False都要首字母大写 <class 'bool'> <class 'bool'>
数值计算
在python3中,需要注意“除号”的使用:
1、单独的一个除号,表示的是除法,结果是一个浮点数;
2、两个除号,表示的是除法取整(商)。即使被除数或者除数是float类型,两个除号都是表示求商。
在python2中,和在C语言一样,没有两个除号连用的语法,单个除号都表示除法取整(商)
python3中单个乘号表示进行乘法运算,两个乘号表示幂运算。
>>> 9 / 4 2.25 >>> 9 // 4 2 >>> 9 % 4 1 >>> 9 // 4.0 2.0 >>> 9 * 2 18 >>> 9 ** 2 81
数进制
2进制:使用0b开头,使用bin(number)将其他进制的数转化为2进制数
8进制:使用0o开头,使用oct(number)将其他进制的数转换为8进制数
10进制,没有前缀标识,使用int(number)将其他进制的数转换为10进制数
16进制:使用0x开头,使用hex(number)将其他进制的数转换为16进制数
>>> 0b100 4 >>> bin(4) '0b100' >>> >>> 0o100 64 >>> oct(0b111) '0o7' >>> >>> 0x100 256 >>> hex(256) '0x100' >>> >>> 100 100 >>> int(0x100) 256
注意,使用bin(),oct(),hex()将进制转换后,返回的结果是字符串类型;而int()转化后是整数类型
>>> type(hex(256)) <class 'str'> >>> type(int(0x100)) <class 'int'>
字符串
重点:字符串中有一个api叫做str(),所以,不要将保存字符串的变量声明为str,这样会覆盖掉内置的str(),导致内置的str()不能使用。
一般的字符串使用单引号和双引号来括起来。
>>> print("Let's go") Let's go >>> print('Let\'s go') Let's go
字符串中使用反斜线来转移字符,比如\n、\t、\'、\" 等
除了使用单引号和双引号来表示字符串,但有时候,我们需要在保存字符串的同时,也保存他的格式,比如换行不用\n,而是实实在在的在输入时就换行。那么可以使用三引号
>>> s = '''hello ... world ... python ... zen of python''' >>> print(s) hello world python zen of python >>> >>> s = """hello ... world ... python ... zen of python""" >>> print(s) hello world python zen of python >>> s 'hello\nworld\n\tpython\n\t zen of python' >>> s.title() 'Hello\nWorld\n\tPython\n\t Zen Of Python'
可以获取字符串的某个字符,但是不能只改变字符串的某个字符,可以改变字符串变量的值
>>> s = "abc" >>> print(s[1]) b >>> s[1] = 'x' #不能改变单个字符 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 's' object does not support item assignment >>> >>> s = "xyz" #可以修改字符串变量的值 >>> print(s) >>> xyz
使用print()打印字符串的注意事项
首先,单纯的使用print()来打印变量,那么就没有什么好讲究的,比如下面这样:
>>> print("abc") abc >>> print(True) True >>> print(3 + 5) 8 >>> print(1 + 3j) (1+3j) >>> print(["hello", "world"]) ['hello', 'world']
但是在打印字符串的时候,就需要注意的,因为字符串中可能有“转义字符”,如果单纯的使用print()打印的话,其中的转义字符就会被转移输出。
如果想要打印\n,而不是被转移为换行输出,那么可以使用\\n来取消转移。
>>> print("Hello\tPython\nHello\tWorld") Hello Python Hello World >>> print("Hello\\tPython\\nHello\\tWorld") Hello\tPython\nHello\tWorld
高级技巧:print(r"str"),打印的时候,并不会将字符串转义输出。
>>> print(r"Hello\tPython\nHello\tWorld") Hello\tPython\nHello\tWorld
布尔类型与其他类型的转化
对于数字来说,只有数字为0,或者0.0,转化为bool类型后,结果才是False;其他情况,比如说1,2,-1,0.1,转化为bool类型后,都为True。
对于字符串来说,只有当字符串的长度为0时,转化为bool类型之后,结果是False;其他情况,比如一个内容全是空格的字符串,转化为bool类型后,结果是True。
对于复数来说,只有当i和j的系数都为0时,转化为bool类型后,结果才是False;其他情况,都为True。
对于列表来说,只有当列表中的元素数量为0的时候,转化为bool后,结果是False;其他情况,都为True。
None也是False。
>>> bool(0) False >>> bool(0.0) False >>> bool(1) True >>> bool(2) True >>> bool(-1) True >>> bool(0.1) True >>> bool("") False >>> bool(" ") True >>> bool(0+1j) True >>> bool(0+0j) False >>> bool([]) False >>> bool([0]) True >>> bool(None) False