Python入门2
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表达式都有值,其值为表达式运算后的结果
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
一份用心整理的Android面试总结
如梦朦胧 九月份的时候有了换工作的躁动,然后投了某度的Android岗位,本以为像我这种非211、985没工作经验的渣渣只能被直接pass,结果却意外的收到了电话,真是受宠若惊.经过电面,技术三面,然后就是等通知到最后拿到了OFFER,如梦一般,真是挺激动的. 面试的准备 当收到HR的面试的通知还是很懵逼的,因为感觉自己突然啥都不会了,迅速镇定下来,去网上找了一下某度的面试题,但是发现都只有提问了什么并没有对所提问题的解答,那只能自力更生,像做试卷一样,一遍总结一遍温顾.其实大多都是平时开发中用到的,只是我们没有总结过,被问起来的时候回答的难免会有点捉襟见肘,不能回答的很全面.下面为我个人总(bai)结(du)的,希望对你能有所帮助,但毕竟能力有限,有写的不对的地方,还望轻喷.虽然喷我我也不会改的. 因为本文篇幅较长建议收藏,在用到时候找出来看一眼.有一些知识点可能没涉及到,以后会加以补足.因为面试无非是考察你对技术的理解和总结,所以本篇的每个点总结的比较精简,只是让你大概的说出来,有的部分是需要能够画出原理图并进行解释说明,这个要在工作中多积累. JAVA 一. 类的加载过程,Per...
- 下一篇
Java并发编程笔记之PriorityBlockingQueue源码分析
JDK 中无界优先级队列PriorityBlockingQueue 内部使用堆算法保证每次出队都是优先级最高的元素,元素入队时候是如何建堆的,元素出队后如何调整堆的平衡的? PriorityBlockingQueue是带优先级的无界阻塞队列,每次出队都返回优先级最好或者最低的元素,内部是平衡二叉树堆的实现。 首先看一下PriorityBlockingQueue类图结构,如下: 可以看到PriorityBlockingQueue内部有个数组queue用来存放队列元素,size用来存放队列元素个数,allocationSpinLock 是个自旋锁,用CAS操作来保证只有一个线程可以扩容队列, 状态为0 或者1,其中0标示当前没有在进行扩容,1标示当前正在扩容。 我们首先看看PriorityBlockingQueue的构造函数,源码如下: private static final int DEFAULT_INITIAL_CAPACITY = 11; public PriorityBlockingQueue() { this(DEFAULT_INITIAL_CAPACITY, null); ...
相关文章
文章评论
共有0条评论来说两句吧...