python入门2
2018年6月26日笔记
复习print函数
if __name__ =="__main__":
name = input("请输入姓名:")
age = input("请输入年龄:")
profession = input("请输入职业:")
school = input("请输入学校:")
hometown = input("请输入家乡:")
print("姓名:" + name)
print("年龄:" + age)
print("职业:" + profession)
print("学校:" + school)
print("家乡: " + hometown)
运行结果如下图所示:
用面对对象的方法实现上面的功能
class People(object):
def __init__(self):
self.name = input("请输入姓名:")
self.age = input("请输入年龄:")
self.profession = input("请输入职业:")
self.school = input("请输入学校:")
self.hometown = input("请输入家乡:")
self.details = dict(
name = self.name,
age = self.age,
profession = self.profession,
school = self.school,
hometown = self.hometown
)
def print(self):
print("姓名:{name}\n年龄:{age}\n职业:{profession}\n"
"学校:{school}\n家乡:{hometown}".format(**self.details))
if __name__ == "__main__":
peopel = People()
peopel.print()
python容器数据类型-列表List
定义:列表是最常用的python数据类型,一个列表中可以存储多个不同类型的数据。
语法:[]可以是number、string、bool等
1.创建列表
创建一个列表,只需要把逗号分隔的不同数据用方括号括起来。例如:list1 = ['h','e','l','l','o']
通过函数list()创建:list2 = list('hello')
2.访问列表元素
list1 = ['python', 'hello', 1997, 2000]
list2 = [1, 2, 3, 4, 5, 6, 7]
print(list1[0])
print(list2[1:5])
以上一段代码的输出结果:
python
[2, 3, 4, 5]
3.更新列表
list1 = []
list1.append('news')
list1.append('paper')
print(list1)
以上一段代码的输出结果:
['news', 'paper']
4.更新列表2
list1 = [1,'python',2]
list1.extend([3,'java'])
print(list1)
以上一段代码的输出结果:
[1, 'python', 2, 3, 'java']
5.更新列表3
list1 = [1,'python',2]
list1.insert(0, 'hello')
print(list1)
以上一段代码的输出结果:
['hello', 1, 'python', 2]
6.删除列表
list1 = ['python','java',1997,2000]
del list1[2]
print(list1)
以上一段代码的输出结果:
['python', 'java', 1997, 2000]
['python', 'java', 2000]
7.列表脚本操作符
out = len([1,2,3])
print('len函数获取列表长度:', out)
out2 = [1,2,3] + [4,5,6]
print('列表相加:', out2)
out3 = ['Hi!'] * 4
print('列表重复n次:', out3)
out4 = 3 in [1,2,3]
print('in关键字判断是否存在列表中:', out4)
以上一段代码的输出结果:
len函数获取列表长度: 3
列表相加: [1, 2, 3, 4, 5, 6]
列表重复n次: ['Hi!', 'Hi!', 'Hi!', 'Hi!']
in关键字判断是否存在列表中: True
8.列表切片,截取
list1 = "I love python".split(' ')
print(list1)
print("读取列表中的第三个元素",list1[2])
print("读取列表中倒数第二个元素",list1[-2])
print("从下标为1开始截取列表",list1[1:])
print("从下标为0开始截取到下标为2列表",list1[0:2])
以上一段代码的输出结果:
['I', 'love', 'python']
读取列表中的第三个元素 python
读取列表中倒数第二个元素 love
从下标为1开始截取列表 ['love', 'python']
从下标为0开始截取到下标为2列表 ['I', 'love']
python容器数据类型--元组tupple
定义:python的元组与列表相似,不同在于元组的元素不能修改
语法:()的元素可以是任意的任意的python数据
1.创建元组
tup1 = ('python', 'java', 1997, 2000)
tup2 = 'a', 'b', 'c', 'd'
tup3 = tuple('hello')
tup4 = tuple([1, 2, 3])
print(tup1)
print(tup2)
print(tup3)
print(tup4)
以上一段代码的输出结果:
('python', 'java', 1997, 2000)
('a', 'b', 'c', 'd')
('h', 'e', 'l', 'l', 'o')
(1, 2, 3)
特殊情况:创建一个元素的元组必须要加逗号,观察下面的输出结果,可以发现('Hi')的类型为str
type(('Hi!'))
Out[18]: str
type(('Hi!',))
Out[19]: tuple
2.访问元组
元组中的元素值是不允许修改的,但可以对元组进行连接组合。
tup1 = ('python', 'java', 1997, 2000)
tup2 = (1, 2, 3, 4, 5, 6, 7)
tup3 = tup1 + tup2
print(tup1[0])
print(tup2[1:5])
print(tup3)
以上一段代码的的输出结果:
python
(2, 3, 4, 5)
('python', 'java', 1997, 2000, 1, 2, 3, 4, 5, 6, 7)
3.元组运算符
out1 = len((1, 2, 3))
print("计算元素个数:",out1)
out2 = (1, 2, 3) + (4, 5, 6)
print("用+号连接元组:",out2)
out3 = ('Hi!',) * 4
print("复制元组:",out3)
out4 = 3 in (1, 2, 3)
print("元素是否存在:",out4)
以上一段代码的输出结果:
计算元素个数: 3
用+号连接元组: (1, 2, 3, 4, 5, 6)
复制元组: ('Hi!', 'Hi!', 'Hi!', 'Hi!')
元素是否存在: True
4.元组索引,截取(切片)
元组是一个序列,可以通过索引访问元组中的指定位置的元素,也可以截取索引中的一段元素。
访问方式与列表相同
python容器数据类型--字典dictionary
定义:python的字典是一种可变容器模型,且可以存储任意类型对象。
字典的每个键值(key->value)对用冒号:分隔。
每个对之间用逗号,来分隔,整个字典包括在花括号{}中。
1.字典的特点
键必须是唯一的,但值则不必。
值可以取任何数据类型,但是键必须是不可变的,如字符串、数字或者元组。
2.创建字典
people1 = {}
people1['age'] = 20
people2 = {'age':20}
people3 = dict(age=20)
print(people1,people2,people3,sept='\n')
以上一段代码为创建dict的三种方法,上面程序的输出结果如下:
{'age': 20}
{'age': 20}
{'age': 20}
3.访问字典
people = {'name':'jack','language':'python'}
print(people['name'])
print(people['language'])
上面一段代码运行结果如下:
jack
python
因为是键与值得映射,所以在读值时不需要考虑排序问题,比如说列表,python需要从头开始读。
因为这个特性,字典读取的效率比较高,数据规模越大,越明显。
所以,mongdb这种非关系型数据库在大的数据方面比较流行。
4.修改字典
people = {'name':'LeiKun','age':23,'Class':'python'}
people['age'] = 18
people['class'] = 'artificial intelligence'
print(people)
上面一段代码的运行结果如下:
{'name': 'LeiKun', 'age': 18, 'Class': 'python', 'class': 'artificial intelligence'}
5.删除字典元素
people = {'name':'LeiKun','age':23,'Class':'python'}
del people['age']
print(people)
people.clear()
print(people)
上面一段代码的运行结果如下:
{'name': 'LeiKun', 'Class': 'python'}
{}
练习
1.使用python创建列表python,并任意给出5个数值
2.调用append函数在score列表中追加5个数值
3.输出第三个元素的数值
4.输出第2-4个元素的数值
5.调用insert,在列表第三个元素之前追加一个数值
6.调用len函数,计算列表中元素的个数
score = list(range(90,95))
score.append(85)
print(score[2])
print(score[1:4])
score.insert(2,60)
print(score)
print(len(score))
上面一段代码运行结果如下:
92
[91, 92, 93]
[90, 91, 60, 92, 93, 94, 85]
7
python容器数据类型--集合set
数据类型分类:
1.能够索引的:list、str,其中的元素可以重复
2.可变的:dict、list,其中的键值对可以原地修改
3.不可变的:str、int,不能原地修改
4.无索引序列的:dict,其中的元素没有排序排列
set是一个无序且不重复的元素集合
可以使用大括号或者set()函数创建集合
1.创建集合
s1 = set('python')
print(s1)
s2 = {1,1,3,1}
print(s2)
s3 = set([123, 'python', 'face', 'book', 'face'])
print(s3)
上面一段代码的运行结果为:
{'h', 'n', 'o', 'y', 'p', 't'}
{1, 3}
{'face', 'python', 123, 'book'}
2.集合增加元素
s = {1, 'love', 'python'}
s.add('hello')
print(s)
s1 = s
s2 = {123,'java','face'}
s1.update(s2)
print(s1)
print(s)
上面代码的运行结果是:
{'python', 1, 'hello', 'love'}
{1, 123, 'face', 'java', 'python', 'hello', 'love'}
{1, 123, 'face', 'java', 'python', 'hello', 'love'}
所以可以用add、update两个函数进行函数增加元素,s1和s其实指向的是同一块内存地址。
3.集合删除元素
删除元素的三个函数:discard()、remove()、pop()
删除不存在的元素时discard不会报错,remove会报错,pop可以移除末尾元素并返回此元素值
4.集合基本操作
计算元素个数:len(s)
清空:s.clear()
判断:'c' in s
5.集合的转换
se = {3, 2, 1, 4, -3, -2, 0}
li = list(se)
tu = tuple(se)
st = str(se)
print(li, type(li))
print(tu, type(tu))
print(st, type(st))
上面一段代码运行结果如下:
[0, 1, 2, 3, 4, -3, -2] <class 'list'>
(0, 1, 2, 3, 4, -3, -2) <class 'tuple'>
{0, 1, 2, 3, 4, -3, -2} <class 'str'>
python运算符
1.算术运算符
**表示幂运算,//表示除法取商运算,%表示除法取余运算
上面一段代码运行结果如下:
13
9
22
5.5
1
121
5
2.关系运算符
6个关系运算符:> < == != >= <=
返回值为True或False
3.赋值运算符
8个赋值运算符,知道算术运算符的含义则可以理解赋值运算符的含义:
=
+=
-=
*=
/=
%=
**=
//=
4.逻辑运算符
3个逻辑运算符: and or not
上面一段代码的运行结果如下:
False
True
True
False
5.成员运算符
2个成员运算符:in 和 not in
上面一段代码的运行结果如下:
True
False
False
True
6.身份运算符
2个身份运算符: is 和 is not
is的功能是判断两个标识符是不是引用自一个对象,
x is y类似于id(x) == id(y)
7.运算符优先级
**幂运算最高优先级
算术运算符>关系运算符>赋值运算符>身份运算符>成员运算>逻辑运算符
8.python运算表达式
数学运算表达式、逻辑运算表达式、关系运算表达式,python表达式都有值,其值为表达式运算后的结果