07 | 修炼基本功:条件与循环
该思维导图由 AI 生成,仅供参考
条件语句
- 深入了解
- 翻译
- 解释
- 总结
Python中的条件与循环是编程中的基本功,控制着代码的逻辑,是程序的中枢系统。条件语句使用简单,但需要注意冒号的使用和条件判断的显性表达。循环语句通过for和while实现,for循环遍历可迭代对象,而while循环适用于重复操作直到条件不满足的情况。在循环中,continue和break能使程序更加简洁、易读。同时,for循环和while循环的效率问题也需要注意,for循环的效率更高。文章通过实例详细介绍了条件与循环的用法和注意事项,对于Python初学者和有一定基础的读者来说,是一篇很好的学习资料。 在阅读代码的时候,你应该常常会发现,有很多将条件与循环并做一行的操作,例如: `expression1 if condition else expression2 for item in iterable`。这种写法非常方便,能够提高代码质量与效率。文章还提到了一些易错的地方,如在条件语句中,if可以单独使用,但是elif和else必须和if同时搭配使用;在for循环中,如果需要同时访问索引和元素,可以使用enumerate()函数来简化代码;合理利用continue或者break来避免复杂的嵌套,是十分重要的。 最后,文章给出了一个思考题,要求针对values中每一组子列表value,输出其和attributes中的键对应后的字典,最后返回字典组成的列表。读者可以通过一行或多行条件循环语句来实现这个功能。这个思考题很好地巩固了文章中所学的知识点。 总的来说,本文通过介绍条件与循环的基本概念、进阶用法以及相应的应用,为读者提供了全面的学习资料,能够帮助他们更好地掌握Python编程中的条件与循环。
《Python 核心技术与实战》,新⼈⾸单¥59
全部留言(248)
- 最新
- 精选
- yshan[(xx, yy) for xx in x for yy in y if x != y] 应该是 if xx != yy] 吧 思考题一行: [dict(zip(attributes,v)) for v in values]
作者回复: 嗯嗯,笔误已更新。 思考题👍
2019-05-2412106 - 小希通过反复查看文章内容跟参考留言中的评论,理解后输出。 虽然不是自己写的,也算是对自己的一种鼓励,至少清楚了逻辑。 #一行 print ([dict(zip(attributes,value))for value in values]) #多行输出 list1 = [] #建议空列表 for value in values: #对值列表进行循环 dict1 = {} #简历空字典,后续对字典键值对存储 for index ,key in enumerate(attributes):#遍历建列表,返回索引与元素 dict1[key] = value[index] #键与值匹配对,组装成字典元素 list1.append(dict1) #将字典添加到列表中 print(list1)
作者回复: 加油
2019-11-275 - 趣学车attributes = ['name', 'dob', 'gender'] values = [['jason', '2000-01-01', 'male'], ['mike', '1999-01-01', 'male'], ['nancy', '2001-02-01', 'female']] result_list = [] for index, item in enumerate(values): result_dict = {} for i, value in enumerate(item): result_dict[attributes[i]] = value result_list.append(result_dict) print(result_list)
作者回复: 很棒
2020-01-101 - 建强另外,想问下老师,和Java相比,Python是不是不能用于构建企业级的应用,构建企业级的系统,是不是用Java更稳定,性能更高。另外,网上说Pyhton是一种粘合剂语言,感觉用Python是不是给人感觉很业余呢?哈哈,开个玩笑。
作者回复: 很多企业级的应用的后端都是python写的啊,比如dropbox,instagram。
2019-06-161 - daowuli_chihai文稿中下面代码,过滤掉长度小于等于5的单词,'Today'就没有了吧? 最后一行是 运行结果吧? 也许不重要,呵呵 【 text = ' Today, is, Sunday' text_list = [s.strip() for s in text.split(',') if len(s.strip()) > 5] print(text_list) ['Today', 'Sunday'] 】
作者回复: 谢谢,已经更正,估计一开始上传的时候有笔误
2020-06-11 - daowuli_chihai下面代码 第10行 except as err: as前面少了一个单词吧 while True: try: text = input('Please enter your questions, enter "q" to exit') if text == 'q': print('Exit system') break ... ... print(response) except as err: # 第10行 print('Encountered error: {}'.format(err)) break
作者回复: 谢谢指正,确实漏了,已经加上了
2020-06-11 - 日月剑python 列表推导式的表达式是不是不能有赋值表达式?比如如下代码: a = ['A', 'B', 'C'] d = {} d[key] = 0 for key in a 这里执行的时候会有语法错误,应该怎么改呢?
作者回复: for key in a: d[key] = 0
2020-03-15 - 小云同学另外我想说for i in <iterable>: 会先调用iterable内部的__iter__方法,变成一个iterator,然后再不断地调用iterator内部的__next__方法,直到出现StopIteration异常,被for循环捕获,然后循环结束。
作者回复: 嗯嗯,后面的迭代器和生成器会讲到
2019-05-24 - 万能的芝麻酱# name_price: 产品名称 (str) 到价格 (int) 的映射字典 # name_color: 产品名字 (str) 到颜色 (list of str) 的映射字典 for name, price in name_price.items(): if price >= 1000: continue if name not in name_color: print('name: {}, color: {}'.format(name, 'None')) for color in name_color[name]: if color == 'red': continue print('name: {}, color: {}'.format(name, color)) 这段代码有bug吧: if name not in name_color 这个条件匹配后应该 continue 到下一个循环了,否则后面的 name_color[name] 应该会报 KeyError 吧? 后者把选取非红色的 for 循环下沉到 if name not in name_color 这个条件的 else 里也可以,感觉这样可读性好一些。
作者回复: 已更正,抱歉,笔误
2019-05-24 - 庄小P老师,那个Continue代码有点小错误,测试案例如下 # name_price: 产品名称 (str) 到价格 (int) 的映射字典 # name_color: 产品名字 (str) 到颜色 (list of str) 的映射字典 name_price = { 'apple': 100, 'banana': 10000 } name_color = { 'banana':['red','green','blue'] } for name, price in name_price.items(): if price >= 1000: continue if name not in name_color: print('name: {}, color: {}'.format(name, 'None')) #continue for color in name_color[name]: if color == 'red': continue print('name: {}, color: {}'.format(name, color))
作者回复: 加个continue就行了,已更新 :)
2019-05-24