Python学习笔记-基本数据类型与变量

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.

 

猜你喜欢

转载自www.cnblogs.com/zhangshch-learning/p/12917636.html