2018年6月26日笔记
if __name__ =="__main__":
name = input("请输入姓名:")
age = input("请输入年龄:")
profession = input("请输入职业:")
school = input("请输入学校:")
hometown = input("请输入家乡:")
print("姓名:" + name)
print("年龄:" + age)
print("职业:" + profession)
print("学校:" + school)
print("家乡: " + hometown)
运行结果如下图所示:
复习print.png-4.2kB
用面对对象的方法实现上面的功能
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数据类型,一个列表中可以存储多个不同类型的数据。 语法:[]可以是number、string、bool等
创建一个列表,只需要把逗号分隔的不同数据用方括号括起来。例如:list1 = ['h','e','l','l','o'] 通过函数list()创建:list2 = list('hello')
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]
list1 = []
list1.append('news')
list1.append('paper')
print(list1)
以上一段代码的输出结果:
['news', 'paper']
list1 = [1,'python',2]
list1.extend([3,'java'])
print(list1)
以上一段代码的输出结果:
[1, 'python', 2, 3, 'java']
list1 = [1,'python',2]
list1.insert(0, 'hello')
print(list1)
以上一段代码的输出结果:
['hello', 1, 'python', 2]
list1 = ['python','java',1997,2000]
del list1[2]
print(list1)
以上一段代码的输出结果:
['python', 'java', 1997, 2000] ['python', 'java', 2000]
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
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的元组与列表相似,不同在于元组的元素不能修改 语法:()的元素可以是任意的任意的python数据
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
元组中的元素值是不允许修改的,但可以对元组进行连接组合。
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)
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
元组是一个序列,可以通过索引访问元组中的指定位置的元素,也可以截取索引中的一段元素。 访问方式与列表相同
定义:python的字典是一种可变容器模型,且可以存储任意类型对象。 字典的每个键值(key->value)对用冒号:分隔。 每个对之间用逗号,来分隔,整个字典包括在花括号{}中。
键必须是唯一的,但值则不必。 值可以取任何数据类型,但是键必须是不可变的,如字符串、数字或者元组。
people1 = {}
people1['age'] = 20
people2 = {'age':20}
people3 = dict(age=20)
print(people1,people2,people3,sept='\n')
以上一段代码为创建dict的三种方法,上面程序的输出结果如下:
{'age': 20} {'age': 20} {'age': 20}
people = {'name':'jack','language':'python'}
print(people['name'])
print(people['language'])
上面一段代码运行结果如下:
jack python
因为是键与值得映射,所以在读值时不需要考虑排序问题,比如说列表,python需要从头开始读。 因为这个特性,字典读取的效率比较高,数据规模越大,越明显。 所以,mongdb这种非关系型数据库在大的数据方面比较流行。
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'}
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
数据类型分类: 1.能够索引的:list、str,其中的元素可以重复 2.可变的:dict、list,其中的键值对可以原地修改 3.不可变的:str、int,不能原地修改 4.无索引序列的:dict,其中的元素没有排序排列 set是一个无序且不重复的元素集合 可以使用大括号或者set()函数创建集合
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'}
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其实指向的是同一块内存地址。
删除元素的三个函数:discard()、remove()、pop() 删除不存在的元素时discard不会报错,remove会报错,pop可以移除末尾元素并返回此元素值
计算元素个数:len(s) 清空:s.clear() 判断:'c' in s
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'>
运算符图示.png-5.4kB
**表示幂运算,//表示除法取商运算,%表示除法取余运算 上面一段代码运行结果如下:
13 9 22 5.5 1 121 5
6个关系运算符:> < == != >= <= 返回值为True或False
8个赋值运算符,知道算术运算符的含义则可以理解赋值运算符的含义:
=
+=
-=
*=
/=
%=
**=
//=
3个逻辑运算符: and or not
逻辑运算符图示.png-6.1kB
上面一段代码的运行结果如下:
False True True False
2个成员运算符:in 和 not in
成员运算符.png-5.9kB
上面一段代码的运行结果如下:
True False False True
2个身份运算符: is 和 is not is的功能是判断两个标识符是不是引用自一个对象, x is y类似于id(x) == id(y)
**幂运算最高优先级 算术运算符>关系运算符>赋值运算符>身份运算符>成员运算>逻辑运算符
数学运算表达式、逻辑运算表达式、关系运算表达式,python表达式都有值,其值为表达式运算后的结果