Python学习笔记-1
语言元素
type()
a = 100
print(type(a))
#查看变量类型
变量类型的强制转换
int()
:将一个数值或者字符串强制转换为整型,可以指定进制float()
:浮点数str()
:将指定对象转换为字符串,可以指定编码方式chr()
:将整数转换为该编码对应的字符串(一个字符)ord()
:将字符串(一个字符)转换为对应的编码(整数)
运算符
运算符 | 描述 |
---|---|
// | 整除 |
>> << | 右移,左移 |
& | 按位与 |
^ | 按位异或 |
\| | 按位或 |
is not in | 成员运算符 |
字符串
-
' '
和" "
都可以获得字符串的,反斜杠\
可以用来转义。 -
如果你希望输出引号
""
,只需要将''
放在字符最外层即可。>>> print('"hello world"') "hello world" >>> print("hello world") hello world
-
如果你不希望前置了
\
的字符转义为特殊字符,在原始字符之前加r
即可>>> print(r'who are you \n') who are you \n >>> print('who are you \n') who are you
-
如果字符串过长,可以跨行输出。使用三重引号即可:
""" """
和''' '''
,但是存在的问题是会把行末的换行符包含进去,这时在行末加上一个\
即可避免。>>> print("""who ... are ... you ... """) who are you >>> print("""who\ ... are ... you""") whoare you
-
字符变量可以通过+连接,当字符串很长时很有用。
>>> 'py' + 'thon' 'python' >>> 'py' 'thon' 'python' >>> a = 'py' >>> a + 'thon' 'python'
-
字符串可以被索引访问,第一个字符的索引为0,这跟列表使用规则是一样的,同时也支持类似列表的切片。但不支持通过索引来修改。
-
字符串也有各种内置方法,详见
列表
-
列表的操作包括:切片,拼接,计算长度
len()
函数 -
列表数据类型还有很多的方法。这里是列表对象方法的清单:
-
list.append(x)
在列表的末尾添加一个元素。相当于a[len(a):] = [x]
。 -
list.extend(iterable)
使用可迭代对象中的所有元素来扩展列表。相当于a[len(a):] = iterable
。 -
list.insert(i, x)
在给定的位置插入一个元素。第一个参数是要插入的元素的索引,所以a.insert(0, x)
插入列表头部,a.insert(len(a), x)
等同于a.append(x)
。 -
list.remove(x)
移除列表中第一个值为 x 的元素。如果没有这样的元素,则抛出ValueError
异常。 -
list.pop([i])
删除列表中给定位置的元素并返回它。如果没有给定位置,a.pop()
将会删除并返回列表中的最后一个元素。( 方法签名中 i 两边的方括号表示这个参数是可选的,而不是要你输入方括号。你会在 Python 参考库中经常看到这种表示方法)。 -
list.clear()
移除列表中的所有元素。等价于del a[:]
-
list.index(x[, start[, end]])
返回列表中第一个值为 x 的元素的从零开始的索引。如果没有这样的元素将会抛出ValueError
异常。可选参数 start 和 end 是切片符号,用于将搜索限制为列表的特定子序列。返回的索引是相对于整个序列的开始计算的,而不是 start 参数。 -
list.count(x)
返回元素 x 在列表中出现的次数。 -
list.sort(key=None, reverse=False)
对列表中的元素进行排序,key 指定带有单个参数的函数,用于从 iterable 的每个元素中提取用于比较的键 (例如key=str.lower
)。 默认值为None
(直接比较元素)。reverse 为一个布尔值。 如果设为True
,则每个列表元素将按反向顺序比较进行排序。 -
list.reverse()
翻转列表中的元素。 -
list.copy()
返回列表的一个浅拷贝,等价于a[:]
。
-
-
二维数组:
方法1 直接定义 matrix = [[0, 0, 0], [0, 0, 0], [0, 0, 0]] 方法2 间接定义 matrix = [[0 for i in range(3)] for i in range(3)] matrix = [[None] * len(courses) for _ in range(len(names))] 方法3 matrix = [] for i in range(3): matrix.append([0] * 3)
-
可以用
del
语句来删除一个列表或者某个指定的元素
元组
-
元组在输出时是被
()
包围的,其中的元素也可以为不同的类型。>>> t = 1234, 4321, 'hello' >>> t (1234, 4321, 'hello') >>> t = ([1, 4, 5], 'who are you') >>> t ([1, 4, 5], 'who are you')
-
元组可以通过解包或者索引的方式来访问,可以使用
len()
返回元组的长度。还可以进行解包的操作。>>> t = ([1, 4, 5], 'who are you') >>> t ([1, 4, 5], 'who are you') >>> t[0] [1, 4, 5] >>> len(t) 2 ## 序列解包 >>> x, y = t >>> x [1, 4, 5] >>> y 'who are you'
集合
-
集合通过花括号或
set()
函数可以用来创建集合。要创建一个空集合只能用set()
而不能用{}
,因为后者是创建一个空字典。>>> a = set('abracadabra') >>> b = set('alacazam') >>> a # unique letters in a {'a', 'r', 'b', 'c', 'd'} >>> a - b # letters in a but not in b {'r', 'd', 'b'} >>> a | b # letters in a or b or both {'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'} >>> a & b # letters in both a and b {'a', 'c'} >>> a ^ b # letters in a or b but not both {'r', 'd', 'b', 'm', 'z', 'l'}
字典
-
一对花括号可以创建一个空字典:
{}
。另一种初始化字典的方式是在一对花括号里放置一些以逗号分隔的键值对,而这也是字典输出的方式。 -
dict()
构造函数可以直接从键值对序列里创建字典。>>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)]) {'sape': 4139, 'guido': 4127, 'jack': 4098}
-
字典只能通过键来访问对应的值,不可以通过索引。字典的删除时通过
del
来实现。>>> tel['jack'] 4098 >>> del tel['sape'] >>> tel['irv'] = 4127 >>> tel {'jack': 4098, 'guido': 4127, 'irv': 4127}
-
对一个字典执行
list(d)
将返回包含该字典中所有键的列表,按插入次序排列 (如需其他排序,则要使用sorted(d)
)。要检查字典中是否存在一个特定键,可使用in
关键字。>>> list(tel) ['jack', 'guido', 'irv'] >>> sorted(tel) ['guido', 'irv', 'jack'] >>> 'guido' in tel True >>> 'jack' not in tel False
-
dict()
构造函数可以直接从键值对序列里创建字典。>>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)]) {'sape': 4139, 'guido': 4127, 'jack': 4098}
此外,字典推导式可以从任意的键值表达式中创建字典
>>> {x: x**2 for x in (2, 4, 6)} {2: 4, 4: 16, 6: 36}
当关键字是简单字符串时,有时直接通过关键字参数来指定键值对更方便
>>> dict(sape=4139, guido=4127, jack=4098) {'sape': 4139, 'guido': 4127, 'jack': 4098}