初探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
浙公网安备 33010602011771号