简介
本文主要介绍python中的基本变量类型。看过了慕课网的教程后,再次回顾,记录一下第一次学习没有注意到的地方以及容易出错的地方,加深理解和记忆。
integer & float
在python3.x版本中,需要注意一下整数和浮点数的运算。(若在2.x环境下,可先引入3.x环境。 from __ future__ import division)
整除://
-
如果除数和被除数均为integer(无float),则返回integer类型。
10 // 2 => 5
10 // 3 => 3 -
如果除数和被除数中有float,则返回float类型。
10.0 // 2 => 5.0
10 // 2.0 => 5.0
10.0 // 2.0 => 5.0
———————
10.0 // 3 => 3.0
10 // 3.0 => 3.0
10.0 // 3.0 => 3.0
除法: /
- 总是返回float类型。
10 / 2 => 5.0
10.0 / 2 => 5.0
10 / 2.0 => 5.0
10.0 / 2.0 => 5.0
———————
10 / 3 => 3.3333333333333335
10.0 / 3 => 3.3333333333333335
10 / 3.0 => 3.3333333333333335
10.0 / 3.0 => 3.3333333333333335
string
-
转义符号:
\n 换行
\t 制表符
\ 转义符本身 -
不转义字符串: r’(_)/ (_)/’
-
多行字符串: ‘’‘string’’’
’’‘Line 1
Line 2
Line 3’’'
等同于
"Line 1\nLine 2\nLine 3" -
Unicode字符串标记:# -*- coding: utf-8 -*- 或者 字符串前加u标记
注:经过我自己的测试,python2.x版本下的默认编码是ascii,python3.7的默认编码是utf-8,如果默认编码已经是utf-8,就不需要重复声明了。
检测方式如下:
import sys
print(sys.getdefaultencoding())
注:多行字符串在起始处要避免连用6个单引号,否则报错invalid syntax,在结尾处要避免连用多于3个单引号,否则报错EOL while scanning string literal。 因python检测到3个连续单引号就认为多行字符串起始,后续再次检测到3个连续单引号就认为EOL此行结束,因此,如果多行字符串起始处连续用5个单引号,python会认为后2个是字符串内的文本,如果在起始处连用6个单引号,python将认为此多行字符串刚开始就结束了,内容为空,后续再检测到其它内容就是无效语句了。如果多行字符串在结尾处连续使用4个字符串,python检测到前3个就认定为字符串结束了,因此检测到第4个单引号时,会报错“在扫描字符时检测到结束标记”。因此多行字符串内首尾处需要引用的,建议使用双引号避免出错,若使用单引号,则一定注意起始处连续使用单引号不要超过6个(含),结尾处不可以多于3个。
例:
>>>print(r''''''To be, or not to be': that is the question.
...Whether it's nobler in the mind to suffer.''')
SyntaxError: Invalid syntax
>>>print(r'''To be, or not to be': that is the question.
...Whether it's nobler in the mind to 'suffer.'''')
SyntaxError: EOL while scanning string literal
list
- 创建list
l = ['a', 'b', 'c', 88, 'b']
总结:list的标志是方括号[ ]括起来。list内元素可以有不同类型。
- 添加/插入/删除/替换
l.append('a')
print(l)
=>['a', 'b', 'c', 88, 'b', 'a']
l.insert(1,'z')
print(l)
=>['a', 'z', 'b', 'c', 88, 'b', 'a']
l.pop()
=> 'a'
print(l)
=> ['a', 'z', 'b', 'c', 88, 'b']
l.pop(2,3,4)
=>TypeError: pop() takes at most 1 argument (3 given)
l.pop(4)
=> 88
print(l)
=> ['a', 'z', 'b', 'c', 'b'