Python入门(二)——运算符,求值顺序,if/for/while语句,list,tuple,dict,seq,set
2017-10-11 20:28
1026 查看
一、运算符
下面我举一些常见的,部分没有写#!/usr/bin/env python # -*- coding:utf-8 -*- # author: xulinjie time:2017/10/11 print(1+3) #输出4 print(13/3) #输出4.333333333333333 #向下取整至最接近的整数 print(13//3) #输出4 #取模 print(13%3) #输出1 #按位与 #按位与是针对二进制数的操作,指将两个二进制数的每一位都进行比较,如果两个相 #应的二进位都为 1 则此位为 1,否则为 0。在本例中, 5 的二进制表达为 101 , 3 的 #二进制表达为 11 (为补全位数进行按位操作写作 011 ),则按位与操作后的结果为 #001 ,对应的十进制数为 1 。 print(5&3) #输出1 #按位或 #按位或是针对二进制数的操作,指将两个二进制数的每一位都进行比较,如果两个相 #应的二进位有一个为 1 则此位为 1,否则为 0。在本例中, 101 与 011 进行按位或操 #作后的结果为 111 ,对应十进制数为 7 print(5|3) #输出7 #按位异或 # 按位异或是针对二进制数的操作,指将两个二进制数的每一位都进行比较,如果两个 # # 相应的二进位不同则此位为 1,相同为 0。在本例中, 101 与 011 进行按位异或操作 # # 的结果为 110 ,对应十进制数为 6 。 print(5^3) #输出6 #布尔“非” x=True print(not x) #输出False #布尔“与” x=False y=1 print(x and y) #输出False,否则输出y的值 #布尔“或” x=True y=False print(x or y) #输出True
二、求值顺序(优先级)
三、控制流(if,for,while语句)
1、if语句(注意语句后的冒号)
含义与其对应的else,还有elif(elif后面也需要和if一样加条件判断)#!/usr/bin/env python # -*- coding:utf-8 -*- # author: xulinjie time:2017/10/11 number=23 guess=int(input(r'please input integer:')) if guess==number: print(r'guess==number') elif guess<number: print(r'guess<number') else: print(r'guess>number')
2、while语句
while语句同样也可以用else作为另一选项(这和CC++4000
还是有区别的)
#!/usr/bin/env python # -*- coding:utf-8 -*- # author: xulinjie time:2017/10/11 number=23 running=True while running: guess=int(input(r'please input integer:')) if guess==number: running=False elif guess<number: running=False else: print(r'error') else: print(r'while byebye') #输出: #D:\Py3.6\python.exe D:/Pylearn/3.py #please input integer:50 #error #please input integer:23 #while byebye
3、for语句(for..in..)
#!/usr/bin/env python # -*- coding:utf-8 -*- # author: xulinjie time:2017/10/11 #range函数生成从1到4的序列 for i in range(1,5): print(i) print('\n') for i in range(1,5,2): print(i) for i in 'python': print('字母是',i) print('\n') i=['aaa','bbb','ccc'] for m in i: print('i是',m) print('\n') #执行循环的遍历方式是通过索引 i=['aaa','bbb','ccc'] for m in range(len(i)): print(i[m]) #输出: D:\Py3.6\python.exe D:/Pylearn/3.py #1 #2 #3 #4 #1 #3 #字母是 p #字母是 y #字母是 t #字母是 h #字母是 o #字母是 n #i是 aaa #i是 bbb #i是 ccc #aaa #bbb #ccc
四、数据结构(List,Tuple,dict,seq,set)
1、List(列表)
列表是一种用于保存一系列有序项目的集合它有很多方法可通过列表对象加.来获得,比如mylist.append是向列表中添加元素,sort是排序….
#!/usr/bin/env python # -*- coding:utf-8 -*- # author: xulinjie time:2017/10/11 shoplist=['apple','mango','carrot','banana'] length=len(shoplist) print('长度:',length) for index in range(len(shoplist)): print('依次输出:',shoplist[index]) print('第一个list:',shoplist[0]) print('增加一个list') shoplist.append('rice') print(shoplist) print('对list排序') shoplist.sort() print(shoplist) print('删除一个list') del shoplist[0] print(shoplist) print('list中放不同的数据类型') shoplist.append(1) print(shoplist) print('list中放list') shoplist.append(['ss','rr']) print(shoplist) print('输出list中的list中的值') print(shoplist[5][1]) #依次输出结果 # D:\Py3.6\python.exe D:/Pylearn/数据结构.py # 长度: 4 # 依次输出: apple # 依次输出: mango # 依次输出: carrot # 依次输出: banana # 第一个list: apple # 增加一个list # ['apple', 'mango', 'carrot', 'banana', 'rice'] # 对list排序 # ['apple', 'banana', 'carrot', 'mango', 'rice'] # 删除一个list # ['banana', 'carrot', 'mango', 'rice'] # list中放不同的数据类型 # ['banana', 'carrot', 'mango', 'rice', 1] # list中放list # ['banana', 'carrot', 'mango', 'rice', 1, ['ss', 'rr']] # 输出list中的list中的值 # rr
2、Tuple(元组)
tuple和list很相似,但是他一旦确定了元素之后就不能变化了。他也没有什么增加,删除的函数,因为他不变,所以安全性高利用括号来包含元素
tuple的陷阱:当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来,比如:
test = (1, 2, 3) print test
如果你想定义一个空的tuple,那么只要这样
test = () print test
如果需要它元素可变的话,只需要它的元素是list就好
test = (5,[1,2]) print(test) test[1][1]='x' print(test) 输出: # D:\Py3.6\python.exe D:/Pylearn/数据结构.py # (5, [1, 2]) # (5, [1, 'x'])
3、dict(字典)
dict含有键值(key)(即姓名)和值(value)(即地址等详细信息),注意:键值必须是唯一的,值可以很多。
你只能使用不可变对象(如字符串)作为dict的键值
通式:d={key1:value1,key2:value2}
比如以下d为dict
d={'xulinjie':'xlj@qq.com','xjxjxj':'op@qq.com'}
我想知道xulinjie的邮箱
print(d['xulinjie']) #输出: #D:\Py3.6\python.exe D:/Pylearn/数据结构.py #xlj@qq.com
删除一对键值-值
d={'xulinjie':'xlj@qq.com','xjxjxj':'op@qq.com'}
#删除一对键值-值配对
del d['xulinjie']
#输出d,items方法是访问字典中每一对键值-值配对信息
for name,address in d.items():
print('{0}:{1}'.format(name,address))
#输出:
#D:\Py3.6\python.exe D:/Pylearn/数据结构.py
#xjxjxj:op@qq.com
添加一对键值-值
d={'xulinjie':'xlj@qq.com','xjxjxj':'op@qq.com'}
#添加一对键值-值配对
d['bbb']='ibib@qq.com'
for name,address in d.items():
print('{0}:{1}'.format(name,address))
#输出:
#D:\Py3.6\python.exe D:/Pylearn/数据结构.py
#xulinjie:xlj@qq.com
#xjxjxj:op@qq.com
#bbb:ibib@qq.com
和list比较,dict有以下几个特点:
1、查找和插入的速度极快,不会随着key的增加而增加;
2、需要占用大量的内存,内存浪费多。
而list相反:
3、查找和插入的时间随着元素的增加而增加;
4、占用空间小,浪费内存很少。
所以,dict是用空间来换取时间的一种方法。
4、seq序列
列表、元组和字符串可以看做序列的某种表现形式序列主要功能是资格测试(也就是in与not in表达式)和索引操作,他们能够允许我们直接获取序列中的特定项目
#!/usr/bin/env python # -*- coding:utf-8 -*- # author: xulinjie time:2017/10/11 #列表序列 shoplist=['apple','mango','carrot','banana'] #字符串序列 name='xulinjie' #输出序列中某个特定的 print(shoplist[0]) print(shoplist[-1]) print(name[0]) print('\n') #输出序列中从指定开始位置到指定结束位置 #如果不指明开始或者结束位置,则从头到尾 print(shoplist[0:3]) print(shoplist[1:-1])#-1是banana print(name[1:4]) print(shoplist[0:]) print('\n') #使用双冒号加上步长参数 #若步长为2,则得到第0/2/4位项目 print(shoplist[::2]) print(shoplist[::1]) #输出: # D:\Py3.6\python.exe D:/Pylearn/数据结构.py # apple # banana # x # # # ['apple', 'mango', 'carrot'] # ['mango', 'carrot'] # uli # ['apple', 'mango', 'carrot', 'banana'] # # # ['apple', 'carrot'] # ['apple', 'mango', 'carrot', 'banana']
5、set(集合)
是简单对象的无序集合(输出是一个集合)set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
要创建一个set,需要提供一个list作为输入集合:
#!/usr/bin/env python # -*- coding:utf-8 -*- # author: xulinjie time:2017/10/11 p=set([1,2,3]) print(p) #有自动过滤功能 s=set([1,1,2,3,4,4,1]) print(s) print(1 in s)#判断1是否在s集合中 sc=s.copy() #复制集合中的元素 sc.add('zhejiang') #issuperset #判断b是否是a的超集 #超集定义:如果一个集合S2中的每一个元素都在集合S1中, #且集合S1中可能包含S2中没有的元素, #则集合S1就是S2的一个超集。 S1是S2的超集,则S2是S1的真子集,反之亦然 print(sc.issuperset(s)) sc.remove(1) #删除序列中指定的元素 print(sc) print(s&sc)#取sc和s的交集 print(s|sc)#取sc和s的并集 #输出: # D:\Py3.6\python.exe D:/Pylearn/数据结构.py # {1, 2, 3} # {1, 2, 3, 4} # True # True # {2, 3, 4, 'zhejiang'} # {2, 3, 4} # {1, 2, 3, 4, 'zhejiang'}
不过虽然说集合有过滤功能,但假如将list放入set那还是“不能达到去重效果”(注意,是加双引号了,哈哈)
p=set([1,2,3]) print(p) p.add('1,2') print(p) #输出: #D:\Py3.6\python.exe D:/Pylearn/数据结构.py #{1, 2, 3} #{1, 2, 3, '1,2'}
注意:我的py都是在3.6版本下的,所以会和2.x有区别
相关文章推荐
- Python3学习(一)-基础、数据类型、变量、字符串和编码、list&tuple、if、for、while、dict、set、函数与参数
- Python基础,基本类型(整型,浮点数等)数据结构(List,dic(Map),Set,Tuple),控制语句(if,for,while,continue or break):来自学习资料
- Python3学习笔记【基础3--list,tuple,if条件判断,for/while循环,dict字典,set集合】
- Python入门(三)——list和tuple,条件判断和循环,dict和set
- python入门之语句(if语句、while语句、for语句)
- python入门list和tuple,dict和set
- python list tuple if for while
- Python入门(三)——list和tuple,条件判断和循环,dict和set
- python入门1之 list、tuple、dict、set的基本要点
- Python入门之list,tuple,dict,set的区别
- python入门之语句(if语句、while语句、for语句)
- Python基础数据结构之大循环(for list,set,dict,tuple)
- python 数据分析入门(list set tuple dict)
- Python 简说 list,tuple,dict,set
- Python初见 List,Tuple,Dict,Set的增删改查
- python基本数据类型list,tuple,set,dict用法以及遍历方法
- Python--list,tuple,dict,set.
- python入门之Python中list,tuple,dict,set辨析
- Python(可变/不可变类型,list,tuple,dict,set)
- python基础数据结构——列表(list), 元祖(tuple), 字典(dict), 字符串(string), 集合(set) 介绍及相互转换