2018-08-06 条件判断+循环+dict&set

条件判断

if
语法如下:

image.png

如果if 后的case成立,那么执行下方缩进语句块的代码,否则执行else下面的缩进语句的代码。并不需要用{ }来控制执行的代码,缩进结束,那么需要执行的代码也就结束了。需要注意 : 号,不能遗漏
C中的else if 在这里被替换成了 elif,语法含义一样,使用方式相同。
case(判断条件)可以简写为
if x:
python解释器会默认解释为判断True or False
只要x是非零数值、非空字符串、非空list等,就判断为True,否则为False。
image.png

转换input
前面提到过一句话:input输入的变量均为str类型,因此,当我们需要比较整数大小等情况就需要用的类型的转换。
一个数是不是字符串怎么显示呢?上一节说的list和tuple,如果打印列表,字符串元素是带引号的,来看看输入和转换后的input。

image.png

很明显可以看到input的内容为str类型,且类型的转换可以在input时候就进行。
a = int( input ( ) )

循环

for x in source 循环
source可以是一个list或tuple,for每执行一次,就把source里的元素赋值给x,循环一次,索引向后移动一位。

image.png

罪过罪过,输出格式化字符%后用 ( ) 而不是 [ ]

这里还提到了一个函数:range(),作用是生成一个整数序列。但是它徐涛通过list()函数转换为一个list,不能直接list_name = [range() ]。
用了 list() 函数后,就直接转为了一个list。

image.png

如果想计算10的阶乘,for in 函数可以直接调用range,无须转化
注意,range(x)函数内的数是从0开始,到x-1结束(x>=1)
比如range(5)= 0,1,2,3,4

image.png

break + continue
break可以提前退出循环。
continue可以跳过此次循环。
这里break是结束的是上一级循环,并非结束整套(多个循环嵌套)。

image.png

这里做了一个小测试,第一个for in 很好理解,就是结束整个for in
要是有多个for in,就像第二个函数呢?什么时候结束?
是不是当 a>100时候,for x ...和 for y...都会结束?
image.png

当然不是。当 a>100时候,结束的是 for y..循环。结束之后,返回再次指向for x..,for x...什么时候结束呢?range(50)循环完结束,所以有了x=49,y=3的答案。可以来看看过程。
image.png

刚刚写了一个错误的continue
image.png

位置错误,continue做的是无用功。
计算0~50偶数和
image.png

dict

存储方式= key + value
关键字 + 对应的值。
这里说到用dict查找的速度是非常快,原因是因为:
第二种方法是先在字典的索引表里(比如部首表)查这个字对应的页码,然后直接翻到该页,找到这个字。无论找哪个字,这种查找速度都非常快,不会随着字典大小的增加而变慢。
dict就是第二种实现方式,给定一个名字,比如'Michael',dict在内部就可以直接计算出Michael对应的存放成绩的“页码”,也就是95这个数字存放的内存地址,直接取出来,所以速度非常快。

参考:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143167793538255adf33371774853a0ef943280573f4d000
有点疑惑的是dict在内部计算出key的位置,是如何计算的?
python中的dict对象也即PyDictObject对象,因为对搜索的效率要求很高,所以选择了散列表(hash table),因为在最优情况下,散列表能够提供O(1)的搜索效率
参考:https://www.cnblogs.com/keke-xiaoxiami/p/8329779.html

现在来看一下语法:
dict_name = {key:value,key:value,key:value}
value = dict_name[key]

image.png

dict的值value可以改变,直接赋值就好
dict_name[key] = new value
判断一个key存不存在可以用 in 或 get方法
--头疼 居然没有保存。。。。。重新写一下吧--
方法in 仅会返回 True or False
'key' in dict_name 存在返回True 不存在返回False
而get可以自定义返回内容。
语法:dict_name.get(key) 存在返回1,不存在返回none
dict_name.get(key,return_value) 存在返回1,不存在返回return_value

image.png

value的更新
直接赋值即可。dict_name[key] = new_value
dict的删除
可以使用pop,同list类似,但稍有区别。
dict的pop必须指定key,否则就会报错。而list若不指定key,那么默认删除最后一个元素
语法:dict_name.pop(key)

image.png

list:内存小,查找速度和元素多少有关
dict:内存较大,查找速度快,不会随着元素的增加而变慢

dict里不能存在相同的key,创建时候可以这样写,但是多个相同的key,都会被舍弃,仅保存最后一个


image.png

set

也是key的集合,但是没有value
语法:set_name = set( [] )
必须要用一个list来作为输入集合,同样,不能存在相同的key。和dict不同的是,没有value值,所以key相同的话会被过滤,仅保存一个。
set添加元素
语法:set.add(key) x相同key依旧会被过滤
set移除元素
语法:set.remove(key)

image.png

可以还有一些特殊的用法,可以做到计算交集、并集等
image.png

list: a = [1,2,3]
tuple:a = (1,2,3)
dict: a = {'a':1,'b':2,'c':3}
set: a = set( [] )

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,875评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,569评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,475评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,459评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,537评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,563评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,580评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,326评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,773评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,086评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,252评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,921评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,566评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,190评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,435评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,129评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,125评论 2 352

推荐阅读更多精彩内容