Python学习笔记-基本数据类型与变量
一 基本数据类型
Python中的基本数据类型包括:数字、字符串、元组、列表、集合、字典六种。
不可变数据(3个):数字 字符串 元组。
可变数据(3个):列表 字典 集合。
1 数字
1.1 整数
在Python中,可对整数执行加(+)减(-)乘(*)除(/)运算,支持运算优先级。
1.2 浮点数
Python将带小数点的数字都称为浮点数。
大部分情况下,使用浮点数都无需考虑器行为。但需要注意,结果包含的小数位数可能是不确定的。
1.3 数字转换成字符串
方法 str() 可以将非字符串值表示为字符串。
2 字符串
字符串就是一系列字符。在Python中,用引号括起的都是字符串,其中引号可以是单引号,也可以是双引号。
2.1 修改字符串大小写
方法 title() 的作用为以首字母大写的方式显示每个单词。用法如下
name = "nigulasi zhaosi" print(name.title())
运行代码,输出如下
Nigulasi Zhaosi
方法 upper() 的作用为将字符串改为全部大写,用法如上;
方法 lower() 的作用为将字符串改为全部小写,用法如上。
2.2 拼接字符串
Python可以使用加号(+)来合并字符串。用法如下:
first_name = "nigulasi" last_name = "zhaosi" full_name = first_name + " " + last_name print(full_name)
2.3 添加空白
编程中,空白泛指任何非打印字符,如空格、制表符和换行符。
字符组合\t,可以在字符串中添加制表符。
字符组合\n,可以在字符串中添加换行符。
2.4 删除空白
方法 rstrip() 能够删除字符串末尾的空白。
方法 lstrip() 能够删除字符串开头的空白。
方法 strip() 能够同时剔除字符串两端的空白。
3 元组
元组是不可变的列表。元组使用圆括号而不是使用方括号来标识。元组内的元素可以像访问列表一样访问。
例如
square = (50, 50)
print(square)
(50, 50)
元组中的元素不可修改,但代表元组的变量可以修改。
例如
square = (50, 50) print(square) (50, 50) square = (100, 100) print(square) (100, 100)
4 列表
列表有一系列特定顺序排列的元素组成。列表可以包含字母表中所有字母、数字0~9或其他任何东西。
在Pythooon中,用方括号([])来表示列表,并用逗号来分隔其中的元素。下面是一个简单的列表实例:
cars = ['benze', 'bmw', 'audi'] print(cars)
4.1 访问列表元素
列表是有序集合,因此要访问列表的任何元素,只需将该元素的位置或索引告诉Python即可。
列表的索引从0开始而不是从1开始,列表的最后一个元素索引为-1,倒数第二个元素索引为-2,以此类推。
提取列表中的元素可以使用索引的方式。如下所示:
cars = ['benze', 'bmw', 'audi'] print(cars[1]) bmw
4.2 修改、添加、删除元素
修改元素
cars = ['benze', 'bmw', 'audi'] print(cars) cars[0] = volkswagen pinrt(cars)
['benze', 'bmw', 'audi']
['volkswagen', 'bmw', 'audi']
添加元素
(1) 在列表末尾添加元素
方法append()可以动态的创建列表,将元素添加到列表末尾。
cars = [] cars.append('benze')
cars.append('audi') print(cars)
['benze', 'audi']
(2) 在列表中插入元素
使用方法insert()可在列表的任何位置添加新元素,需要指定新元素的索引和值。
cars = ['benze', 'audi'] cars.insert(0, 'bmw') print(cars)
['bmw', 'benze', 'audi']
删除元素
(1)使用del语句删除元素
如果知道要删除的元素在列表中的位置,可以使用del语句删除。del语句将元素从列表中删除后,就无法再访问到了。
cars = ['benze', 'bmw', 'audi'] del cars[0] print(cars)
['bmw', 'audi']
(2)使用pop()删除元素
方法pop()可删除列表末尾的元素,并可以继续使用它。
cars = ['benze', 'audi', 'bmw'] broken_cars = cars.pop() print(cars) print(broken_cars)
['benze', 'audi'] ['bmw']
此外,方法pop()还可以用来删除列表中任意位置的元素
cars = ['benze', 'bmw', 'audi'] cars.pop(0) print(cars)
['bmw', 'audi']
(3)根据值删除元素
方法remove()从列表中删除元素时,也可接着使用它的值。
cars = ['benze', 'bmw', 'audi']
cars.remove(audi)
print(cars)
['benze', 'bmw']
4.3 组织列表
列表排序
方法sort()对列表进行永久性排序。
cars = ['bmw', 'audi', 'toyota', 'subaru'] cars.sort() print(cars)
['audi', 'bmw', 'subaru', 'toyota']
向sort()方法传递参数revirse=Ture,可以按与字母顺序相反的顺序排列列表元素。
cars = ['bmw', 'audi', 'toyota', 'subaru'] cars.sort(reverse=True) print(cars)
['toyota', 'subaru', 'bmw', 'audi']
方法sored()对列表进行临时排序。
使用场景为要保留列表元素原来的排列顺序,同时以特定的顺序呈现它们。
使用方法如sort()。
方法reverse()可以反转列表元素的排列顺序,此方法为永久性的修改列表元素的排列顺序。
cars = ['bmw', 'audi', 'toyota', 'subaru'] cars.reverse() print(cars)
['subaru', 'toyota', 'audi', 'bmw']
函数len()确定列表长度。
cars = ['bmw', 'audi', 'toyota', 'subaru'] len(cars) 4
4.4 更多列表操作
创建数字列表
使用函数range()可以生成一系列的数字。
例如
for value in range(1,6): print(value)
1 2 3 4
5
函数range()让Python从你指定的第一个值开始数,并在达到你指定的第二个值后停止,因此输出不包含第二个值。
使用函数list()将range()的结果直接转换为列表。
例如
numbers = list(range(1,6)) print(numbers)
[1, 2, 3, 4, 5]
对数字列表进行简单的统计计算
numbers = [1, 2, 3] print(min(numbers)) print(max(numbers)) print(sum(numbers))
1 3 6
使用列表的一部分
(1)切片
下面是打印names列表的前三个元素的列表
names = ['zhangsan', 'lisi', 'wangwu', 'doudou'] print(names[0:2])
['zhangsan', 'lisi', 'wangwu']
如果没有指定第一个索引,Python将自动从列表开头开始。例如
names = ['zhangsan', 'lisi', 'wangwu', 'doudou']
print(names[:2])
要让切片终止于列表末尾,也可使用类似的方法。
names = ['zhangsan', 'lisi', 'wangwu', 'doudou']
print(names[1:])
如果要提取特定位置到列表末尾的的所有元素,例如末尾三个元素
names = ['zhangsan', 'lisi', 'wangwu', 'doudou'] print(names[-3:])
['lisi', 'wangwu', 'doudou']
(2)复制列表
使用切片的方式复制列表
names = ['zhangsan', 'lisi', 'wangwu', 'doudou'] old_names = names[:] print(names) print(old_names)
注意:不要使用
old_names = names
这种方式。这种方法是将names列表赋值给old_names,old_names此时指向的是names列表,而不是将names列表中的内容创建的副本给old_names。
5 字典
在Python中,字典是一系列键-值对。每个键都与一个值相关联,可以使用键来访问与之相关联的值。与键相关联的值可以使数字、字符串、列表或者字典,可将任何Python对象用作字典中的值。
键-值对是两个相关联的值。指定键时Python将返回与之相关联的值。键和值之间用冒号分隔,而键-值对之间用逗号分隔。在字典中,想存储多少个键-值对都可以。
例如
clothes_0 = {'color': 'red', 'size': M}
5.1 使用字典
访问字典中的值
clothes_0 = {'color': 'red', 'size': M}
print(clothes_0['color'])
red
创建空字典,并添加键-值对
clothes_1 = {}
clothes_1['color'] = 'blue'
clothes_1['size'] = L
print(clothes_1)
'color': 'blue', 'size': L
删除键-值对
对于字典中不再需要的信息,可使用del语句将相应的键-值对彻底删除。使用del语句时,必须指定字典名和要删除的键。
clothes_0 = {'color': 'red', 'size': M}
del clothes_0['size']
print(clothes_0)
{'color': 'red'}
5.2 遍历字典
遍历字典中的所有键值
favorite_foods = { 'zhangsan': 'apple', 'lisi': 'orange', 'wangwu': 'strawberry', 'doudou': 'durian' }
for key, value in favorite_foods.items():
print("\nKey: " + key)
print("Value: " + value)
Key: zhangsan
Value: apple
Key: lisi
Value: orange
Key: wangwu
Value: strawberry
Key: doudou
Value: durian
遍历字典中的所有键
方法keys()可以遍历字典中的所有键。
favorite_foods = { 'zhangsan': 'apple', 'lisi': 'orange', 'wangwu': 'strawberry', 'doudou': 'durian' } for key in favorite_foods.keys(): print("Key: " + key)
Key: zhangsan
Key: lisi
Key: wangwu
Key: doudou
遍历字典中的所有值
方法values()可以遍历字典中的所有值。
favorite_foods = { 'zhangsan': 'apple', 'lisi': 'orange', 'wangwu': 'strawberry', 'doudou': 'durian' } for value in favorite_foods.values(): print("Value: " + value)
Value: apple
Value: orange
Value: strawberry
Value: durian
5.3 嵌套
字典列表
clothes_0 = {'color': 'red', 'size': 'M'} clothes_1 = {'color': 'black', 'size': 'L'} clothes_2 = {'color': 'white', 'size': 'M'} clotheses = [clothes_0, clothes_1, clothes_2] for clothes in clotheses: print(clothes)
{'color': 'red', 'size': 'M'} {'color': 'black', 'size': 'L'} {'color': 'white', 'size': 'M'}
字典中存储列表
zhangsan_hobbits = { 'name': 'zhangsan', 'hobbits': ['reading', 'coding', 'playing tennis'] } print(zhangsan_hobbits)
{'name': 'zhangsan', 'hobbits': ['reading', 'coding', 'playing tennis']}
字典中存储字典
cities = { 'Paris': { 'contory': 'France', 'symbol': 'Eiffel Tower' }, 'Beijing': { 'contory': 'China', 'symbol': 'The Palace Museum' } } for city, city_info in cities.items(): print(city + " is the capital city of " + city_info['contory'] + "," + city_info['symbol'] + " is " + city + "'s symbol.")
Paris is the capital city of France,Eiffel Tower is Paris's symbol.
Beijing is the capital city of China,The Palace Museum is Beijing's symbol.
二 变量
2.1 变量命名规则
(1) 变量名可以由字母、数字或下划线组成
(2) 变量名的第一个字符可以是字母或下划线,但不能是数字
(3) 变量名不能包含空格,但可使用下划线来分隔其中的单词。例如:useful_infornation
(4) Python关键字不可设为变量名:
‘False’, ‘None’, ‘and’, ‘as’, ‘assert’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘except’, ‘except’, ‘exec’, ‘finally’, ‘for’, ‘from’, ‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘not’, ‘or’, ‘pass’, ‘print’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘yield’
(5) Python内置函数不建议作为变量名,虽不会导致错误,但会覆盖原函数的行为:
‘abs()’, 'all()', 'any()', 'basestring()', 'bin()', 'bool()', 'bytearray()', 'callable()', 'chr()', 'classmethod()', 'cmp()', 'complex()', 'delattr()', 'dict()', 'dir()', 'divmod()', 'enumerate()', 'eval()', 'execfile()', 'file()', 'filter()', 'float()', 'format()', 'frozenset()', 'getattr()', 'globals()', 'hasattr()', 'hash()', 'help()', 'hex()', 'id()', 'input()', 'int()', 'isinstance()', 'issubclass()', 'iter()', 'len()', 'list()', 'locals()', 'long()', 'map()', 'max()', 'memoryview()', 'min()', 'next()', 'object()', 'oct()', 'open()', 'ord()', 'pow()', 'print()', 'property()', 'range()', 'raw_input()', 'reduce()', 'reload()', 'repr()', 'reversed()', 'round()', 'set()', 'setattr()', 'slice()', 'sorted()', 'staticmethod()', 'str()', 'sum()', 'super()', 'tuple()', 'type()', 'unichr()', 'unicode()', 'vars()', 'xrange()', 'zip()', 'Zip()', '_import_()', 'apply()', 'buffer()', 'coerce()', 'intern()'
(6) 变量名应既简短又具有描述性。
例如,name比n好,name_length比length_of_persions_name好
(7) 慎用小写字母l和大写字母O,容易被错看成数字1和0 。
2.2 变量定义
message = "An inch of gold will not buy an inch of time." print(message)
An inch of gold will not buy an inch of time.