• 0
  • 0
分享
  • 十个Python初学者常犯的错误——软件测试圈
  • 恬恬圈 2023-12-26 16:33:54 字数 1327 阅读 392 收藏 0

  下面10个Python初学者常犯的错误,并不是真正的代码错误,代码照样可以运行,但是不够Pythonic,因为Python有自己的语言哲学,在代码的处理上有传统语言无法比拟的简洁性和便捷性。

  1.  真值比较

  初学者经常在if语句中使用==比较符来判断表达式是否为真值。

7-1.png

  这是一种冗余的写法,其实你可以直接对变量进行检查。

7-2.png

  2 . 字符串连接

  很多初学者教程中,他们会告诉你字符串连接直接使用+操作符。

7-3.png

  一种更优雅的写法是使用f-string方式,将变量放置在{} 中,该方法能让代码清晰易读,因为你不需要针对非字符串变量做强制转换了。

7-4.png

  3. open()、close()与上下文管理器

  操作文件时,下面的代码看起来可读性很好,打开文件、编辑文件、关闭文件。不过在最后你总要是手动去调用close方法来关闭文件。

7-5.png

  其实python提供了内置的上下文管理器,操作文件时,使用with关键字操作文件,这样就不需要自己处理文件的关闭操作了,在离开上下文前管理器会自动帮你关闭文件。

7-6.png

  4. 检查列表是否为空

  假设你要基于列表做某些操作,操作前需要判断列表是否为空,初学者通常会使用len方法判断列表的长度是否为0,并做后续操作。

7-7.png

  有经验的开发者会告诉你,一种更好的方式是直接用列表本身来判断列表是否为空。

7-8.png

  5. 字典中获取key和value

  如果你要列出并打印字典中所有元素,首先你要拿到每个元素的key,然后通过key来获取对应的value。初学者通常将两个步骤分开处理。

7-9.png

  更便捷的方法是,字典的items()方法会返回一个由(key,value)元组构成的迭代对象。

7-10.png

  6. 解构赋值

  元组在python中是一种固定长度的数据结构,新手在将元组中的元素赋值给多个不同的变量时,他们通常的做法是从元组中逐个赋值给变量。

7-11.png

  更好的做法是直接在一行代码中用解构的方式,将元组同时赋值给多个不同的变量。

7-12.png

  7. 列表迭代

  对于新手来说,用for循环迭代列表中的元素时,他们通常的做法是先拿到列表的长度,然后通过元素的下标索引来获取值。

7-13.png

  其实更专业的做法就是直接迭代列表本身,每次迭代出来的值就是列表中的元素。

7-14.png

  8.  一个索引用于多个列表

  假设你想将两个列表中的值做加操作,通常,你会从索引0开始循环直到列表的结尾,每次循环将列表项做加操作组成新的列表。

7-15.png

  python提供了一个更好的方法zip(),它将两个列表对象重新组合成一个成对出现的tuple元素列表。

7-16.png

  9. 海象操作符

  在python3.8之前,当一个变量作用在if判断语句上时,要先给他赋值然后再处理。

7-17.png

  python3.8的海象操作符,让你的代码减少重复,看起来更简洁,你可以将变量的赋值和if判断一行处理。

7-18.png

  10. 不必要的索引

  如果有一个文本列表,你想随下标索引一起打印,可以你单独定义一个数字变量每次迭代的时候递增1。

7-19.png

  一个更为专业的做法是直接用enumerate()方法,每次迭代时,他会返回元素的下标索引和元素本身。

7-20.png


作者:刘志军    

来源:http://www.51testing.com/html/47/n-7792347.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   Web 自动化是指使用测试脚本在 Web 上自动执行任务。它包括填写表单、导航网页、单击链接或按钮以及从网站中提取数据等任务。  它可用于各种目的,例如自动输入数据或测试网站的功能。有几种工具和编程语言可用于自动化网络上的任务,包括Selenium,Cypress,Playwright等。  由于有无数的浏览器,例如 火狐 和 铬.大多数用户认为网络浏览器旨在获取所需的信息并浏览不同的网页。当我们涉及 Web 应用程序开发时,它远不止于此。为了确保您的应用性能出色,最好执行自动跨浏览器测试,这是在不同浏览器、操作系统和设备上测试网站的理想方式。  什么是网络自动化?  Web 自动化是使用...
            0 0 261
            分享
          • 8 月 25 日消息,索尼今日宣布,将在部分市场上调 PS5 主机价格,此次调价将针对欧洲、中东和非洲、亚太地区和拉丁美洲地区以及加拿大的部分市场推行,不过美国不会涨价。国行 PS5 数字版 / 光驱版上调 400 元,改为 3499 元 / 4299 元,涨价幅度分别为 12% 和 10%。虽然鉴于当前的全球经济环境及其对 SIE 业务的影响,此次价格上涨是必要的,但我们的首要任务仍然是改善 PS5 的供应状况,以便 尽可能多的玩家能够体验 PS5 提供的一切以及未来的发展。除非另有说明,否则以下新的 RRP 立即生效。欧洲带有超高...
            0 0 824
            分享
          • 前段时间,大众汽车用3万台机器人,50秒造一辆车的新闻,让我们认识了一个既熟悉又陌生的词--"第四次工业革命"。说起工业革命这个词,相信大家都不会陌生,凡是被历史考试蹂躏过的人,都把"工业革命是以机器取代人力,以大规模工厂化生产取代个体工场手工生产的一场生产与科技革命。"这段话背得个滚瓜烂熟了。但是加上"第四次"这个词,就不见得你能搞明白了。本小编今天就让你用3分钟,和这个"第四次工业革命"来个亲密接触。 有人问:"小编,你不是IT行业的么,怎么搞起工业的事情来了?"这句话问的好!因为就这一个问题,直接揭秘了"第四次工业革命"的本质!第一次工业革命,是用机器取代人力;第二次和第三次工...
            4 0 1834
            分享
          • 随着开发模式的迭代更新,前后端分离已不是新的概念,现在大部分的项目都采用这种开发模式;当我们拿到待测试需求时,可能后端已开发完成,但前端还未完成,我们需要进行接口验证,那如何进行接口测试?就这个话题,进行一个探讨,我们先去做接口测试,从结果上来分析到底需不需要做接口测试,测试哪些内容等等。开始之前,先虚拟一个产品需求:需求描述:假设我们要做一个全新的后台项目,商品CMS管理平台(这里抛去复杂逻辑,因为需求无限拓展下去,势必大家对需求认知产生分歧,从而对测试内容产生分歧)。第一期的功能,商家用户可以在平台上进行商品的创建,编辑,删除,查询,上下架等操作;运营用户可以审核商家的商品;我们来简单描述...
            0 0 1102
            分享
          • 接《“我现阶段最在乎的是如何提升自己”(上)》,原文可在本人主页查看~通过什么提升?理论+实践。理论更多解决知识、态度问题,实践更多解决技能、经验问题。理论怎么提升?要读原著、学原文、悟原理,要学经典理论,要学榜样。学什么理论?经典理论,常识理论,就是千百年来大家公认的理论。哲学理论需要有,唯物辩证法需要有,公司的基本法需要有,部门的历史需要有,部门大事记需要了解,公司大事记需要了解,并列部门大事记需要了解。这些,应该能提升我们的理论认识水平。实践怎么提升?事上磨,事上练。领导交办的每一件事情,都拿出120分的热情来办,都拿出全力以赴来办,都拿出满怀的热忱来办。都遵循“凡事预则立不预则废”,都...
            1 1 529
            分享
      • 51testing软件测试圈微信