精华技巧,学会这几招可以假装是Python高手

华为OD机试 - 玩牌高手(Python) | 机试题+算法思路+考点+代码解析 【2023】 给定一个长度为N的整数数组,表示一个选手在N轮内选择的牌面分数,选手基于规则选牌,请计算所有轮结束后其可以获得的最高总分数。 阅读详情

点击上方“菜鸟学Python”,选择“星标”公众号

超级无敌干货第一时间推给你!!!

Python里面的技巧真的是太多了,菜鸟如何假装自己的是高手呢,下面教大家几招快速变成老司机的招数,尤其是在实战的项目中,用上这几招一定让你周围的同事刮目相看,哇这个代码有两把刷子。

1.大量的if-else结构

我们在平时项目的时候会经常遇到大量的if/elif 这样的情况,非常常见,通常我的写法如下,比如一个每周上周的情况:

上面的代码一来比较丑,二来扩展性非常不好,如果我要把一周的排课的顺序调整,需要对代码的结构做很大的调整。如果结构再复杂一点的话更麻烦。

理想的情况是这样,构建一个一周的字典,用字典key来匹配:

代码改写如下:

2.类的成员变量赋值

类里面的变量的设计一定会分私有和公开的,在一开始设计的时候就需要考虑那些变量是要私有的,这在类的内部访问,那些可以公开。

上面这样的设计很明显是没有任何保护的,好一点的设计应该是这样:

3.清楚的异常声明比含蓄的要好

实战项目了遇到异常处理是非常常见的事情,我们很多初学者喜欢偷懒写成这样,主要是图省事:

一旦发生问题,你不知道是什么异常导致的,很难定位!对于异常的处理,应该尽量分一分类,这样写会好一些:

4.巧妙的利用yield

比如一个文件搜索程序,我们要搜索目录下面所有文件包括子目录里面的文件,怎么做呢:

传统的做法是里面函数里面放一个列表来递归存储 搜索的文件名,这样的写法不错,但是不是很老道,也不是很pythonic,有更简便的方法吗,当然有接着往下看这一招。

以上几招非常实用,尤其是刚入门的菜鸟,在真实项目过程中如果能掌握就这几招,应用到项目里面,就可以依葫芦画瓢写出一些很Pythonic的代码,迅速让你的功力大增~~小伙伴还等啥,操练起来。

end

近期八大热门:

发现一个舔狗福利!这个Python爬虫神器太爽了,自动下载妹子图片!
盗墓热再起!我爬取了6万条《重启之极海听雷》的评论,发现了这些秘密
用Python一键生成炫酷九宫格图片,火了朋友圈
菜鸟也疯狂!8分钟用Python做一个酷炫的家庭随手记
Github获8300星!用Python开发的一个命令行的网易云音乐
一道Python面试题,硬是没憋出来,最后憋出一身汗!卧槽!Pdf转Word用Python轻松搞定!教你6招,不错的Python代码技巧!
菜鸟编程大本营,现已正式上线!
接下来我们将会在该公众号上,为大家分享优质编程语言里趣味的干货,通俗易懂的实战案例,经验分享,让菜鸟也爱上编程。


长按 2秒,输入:【书单】

获取Python精选书籍

点击阅读原文,直达菜鸟B站视频干货!
034. 数组二叉树[200 分] 华为OD真题【javascript版本】 阅读详情

相关推荐

华为机试真题实战应用【赛题代码篇】-玩牌高手 (附Java、Python和C++代码)

选手也可以不选择本轮牌面直接跳到下一轮,但此时需要将当前总分数还原为3轮前的总分数,若当前轮次小于等于3(即在第1、2、3轮选择跳过),则总分数置为0.给定一个长度为n的整型数组,表示一个选手在n轮内可选择的牌面分数。第七轮如果不选择该轮牌面,则总分还原到3轮前的分数,即第四轮的总分数4;如果选择牌面,总分数为11。在每轮里选手可以选择获取该轮牌面,则就在其总分数加上该轮牌面分数,作为新的总分数。第二轮不选择该轮牌面,总分数还原为0。第三轮不选择该轮牌面,总分数还原为0。第五轮选择该轮牌面,总分数为7。

qq_36130719的博客 590

30个Python操作小技巧

30个Python操作小技巧

Java癫疯的博客 921

基于Python实现扑克牌面试题

主要介绍了基于Python实现扑克牌面试题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

30 个 Python 编程实用技巧(建议收藏)

统一包含列表和元组的列表的另一种更简单的方法是使用 Python 的 < more_itertools > 包。有时,如果当前运行的 Python 引擎低于支持的版本,我们可能不想执行我们的程序。或者,我们可以使用 '{1,3,5,7}' 而不是 '[1,3,5,7]' 作为 'in' 运算符,因为 'set' 可以通过 O(1) 访问每个元素。下面的语句与它的意思相同,即“如果 y 为 9,则将 10 分配给 x,否则将 20 分配给 x ”。就像我们使用列表推导一样,我们也可以使用字典/集合推导。

am1122的博客 856

VS2022离线安装总闪退?可能是这个--noWeb参数没加对(完整参数指南)

本文深入解析了VS2022离线安装过程中常见的闪退问题,指出核心原因往往在于命令行参数使用不当,特别是`--noWeb`参数。文章提供了完整的参数使用指南和实战解决方案,包括证书处理、安装器文件修复及自动化脚本,帮助用户彻底解决离线部署中的验证失败与闪退难题。

weixin_28842269的博客 761

问题:dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)

 1. 问题:Ubuntu安装软件的过程中出现依赖项的问题 “E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).” 按照指示执行如下两条命令都没有解决问题。 sudo apt-get -f install sudo apt-get --fix-broken ...

gloria_littlechi的博客 2万+

玩牌高手-算法练习-python

玩牌高手 python

weixin_41096399的博客 571

普通人如何上岸华为OD-面试总结

总共有3道算法题,100分值的两道,200分值的一道,不同的毕业院校和专业,通过机试的分值不一样,最少需要150分通过,提前和hr联系,了解自己需要多少分通过。重中之重:哪怕你是背的题库,也请你一定不要直接抄原来的,最好是变更下方法名,否则会判定你重复率过高,从而失去后面的面试机会(实在是不会做再用此方法,凑分数所用,面试官能看到你的代码,会影响你的面试评价)本人女,所以还问道了婚育计划,有对象这点可以说,没有问题,但是如果可以的话,生孩子的时间,可以给hr说这几年不考虑。如果说没有难题,直接就挂了。

weixin_47767264的博客 5460

装比的精华技巧,学会这几招以假乱真成为Python高手

Python里面的技巧真的是太多了,菜鸟如何假装自己的是高手呢,下面教大家几招快速变成老司机的招数,尤其是在实战的项目中,用上这几招一定让你周围的同事刮目相看,哇这个代码有两把刷子。 1.大量的if-else结构 我们在平时项目的时候会经常遇到大量的if/elif 这样的情况,非常常见,通常我的写法如下,比如一个每周上周的情况: 上面的代码一来比较丑,二来扩展性非常不好,如果我要把一周的排课的顺序调整,需要对代码的结构做很大的调整。如果结构再复杂一点的话更麻烦。 理想的情况是这样,构建一个.

码农黑羽的博客 221

430单片机实现三人投票表决器_基于单片机的五人表决器的设计

姚海云+马野摘要:本设计利用51单片机,按键开关模块,数码管显示模块和LED模块来实现一个简单的五人表决器的功能。按键开关模块中的键2~键6表示五个人,由5个人来投票,当同意的票数大于或者等于3人时,数码管显示同意的人数,说明表决通过。当表决的人数小于3时,数码管显示同意的人数。关键词:表决器;单片机;流水灯;数码管;矩阵键盘;时钟中图分类号:TP391 文献标识码:A 文章编号:1009-304...

weixin_33277215的博客 2558

caxa二次开发实例展示

本人有8年CAXA各产品(如电子图版、工艺图表、PDM等)二次开发经验,参与过国家电网南瑞集团、中石油、龙记集团、欧姆龙集团、港日集团、中集集团、中国五矿、方圆塑机、大连锅炉、金蝶PDM集成CAXA,TEAMCENTER集成CAXA、大连锅炉机械、中国中车等项目的开发,擅长CAXA电子图版、CAXA工艺图表的二次开发,有需要的可以联系我,电话:13169467685、13249738576 Q

hourui800720的专栏 8031

《最受欢迎的女友职业排行榜Top10》

作者丨WYN来源丨我要WhatYouNeed(newWhatYouNeed)有热门推荐????1.超全Python IDE武器库大总结,优缺点一目了然!2.Python 30道高频面...

cainiao_python的博客 186

GD32F130之USART多机通信

简介 在多机通信中,一个从机应该只接收它需要接收的数据,且只应该在它需要接收数据时才检测串口。而始终接收RX线上的数据对从机来说是一种负担。 多机通信硬件设计 远距离方案:RS485 板级方案: 静默模式 静默模式有什么作用? 答:如果 USART 处于静默模式,所有的接收状态标志位将不会被置位。 如何进入静默模式? 答:软件可以通过将 USART_CMD 寄存器中MMCMD 位置 1 使 USART 进入静默模式。 如何从静默模式中唤醒? 答:有两种方式可选,①检测到总线

luliplus的博客 302

python resize_长假余额为零!我用Python做了个中秋国庆双节拼图游戏

点击上方“菜鸟编程大本营”,选择“星标”公众号重磅干货,第一时间送达今年的国庆长假非常长,不知不觉已经余额为零!朋友圈很多晒出游的照片,聚会的照片,吃吃喝喝真舒服,不过也该收收心啦。编程需要不断的练习再练习,拳不离手曲不离口,代码几天不写手就生了。这不小编赶紧撸起来,用Python整一个好玩的拼图游戏。我们以中秋国庆佳节为背景的Python拼图小游戏,利用搜集好的中秋国庆系列图片作为背景...

weixin_39602615的博客 126

【IPC】ONVIF Device Manager 测试工具

介绍onvif 协议测试工具

以实战经验介绍行业知识 1963

uniapp APP端:蓝牙报错writeBLECharacteristicValue:fail property not support(uni.writeBLECharacteristicVal)

uni-app 蓝牙fail property not support、发现不了服务特征值的问题、突然发现微信蓝牙小秘密,使用uni-app编译成安卓APP后报错writeBLECharacteristicValue:fail property not support,发现不了服务特征值,uniApp APP调用蓝牙API发送指令过快导致,uniapp 蓝牙 writeBLECharacteristicValue property_not_support iOS Android BLE GATT 特征值写入

✅ 精选推荐文章 2944

长假余额为零!我用Python做了个中秋国庆双节拼图游戏

点击上方“菜鸟学Python”,选择“星标”公众号重磅干货,第一时间送达今年的国庆长假非常长,不知不觉已经余额为零!朋友圈很多晒出游的照片,聚会的照片,吃吃喝喝真舒服,不过也该收收心啦。...

cainiao_python的博客 1179

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【推荐】五个实用的Python小技巧

当我们开始学习Python时,可能需要一段时间来学习一些技巧和窍门,但是掌握这些技巧可以使得我们的编程生活更加轻松。在本文中,我们将探索一些可以在Python中使用的技巧。喜欢本文记得收藏、点赞、关注。 【注】文末提供技术交流群 1. 水平打印 当迭代循环遍历列表时,print函数会打印列表中每个元素,每行打印一个元素。这是因为print函数有一个名为end的参数。默认情况下,end参数有一个转义字符_end=’\n’_。要水平打印,我们需要删除转义字符,并用空字符串_end=""_替换它。 代码如下:

Python学习与数据挖掘 5279

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

漫画,假装自己是Python高手,学会这十招就可以

来源:菜鸟学Python 链接:https://mp.weixin.qq.com/s/5UXw0f44uwprSpS9ixEibAPython是一门简单易学,而且功能...

python爬虫人工智能大数据 397

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

python中的一些实用技巧【持续更新】

一、逆序迭代 #正序: range(4) #输出:0,1,2,3 【#逆序方法一:】 reversed(range(4)) 输出:3,2,1,0 【#逆序方法二:】 range(3,-1,-1) #输出:3,2,1,0 【#逆序方法三:列表逆序切片法】 range(4)[::-1] 输出:3,2,1,0 二、两个列表,对应位置相乘 【方法1:】 list1=[1,2,3] lis...

transformed的博客 406

python实用30个小技巧

1.原地交换两个数字 Python 提供了一个直观的在一行代码中赋值与交换(变量值)的方法,请参见下面的示例: In [1]: x,y = 10 ,20 In [2]: print(x,y) 10 20 In [3]: x, y = y, x In [4]: print(x,y) 20 10 赋值的右侧形成了一个新的元组,左侧立即解析(unpack)那个(未被引用的)元组到变量...

java276582434的博客 9395

25个超有用的Python代码段

1在两个变量之间交换值 在其他语言中,要在两个变量间交换值而不是用第三个变量,我们要么使用算术运算符,要么使用位异或(Bitwise XOR)。在 Python 中,它就简单多了,如下所示。 a = 5b = 10 a,b = b,aprint(a) # 10print(b) # 5 2检查给定的数字是否为偶数 如果给定的数字为偶数,则如下函数返回 T...

wwx 582

用 Python 打扑克牌——炸金花

用 Python 打扑克牌——炸金花 在学习《流畅的Python》一书中,第一节 Python 数据类型讲解的过程中,实现了一副扑克牌,代码实现非常简洁。当看完之后,联想到生活中我们玩过的炸金花,便着手设计了程序,用来实现双人炸金花这种游戏模型。 本程序中主要分为三个对象类,Poker 类(扑克牌),Player 类(玩家),Winner 类(游戏取胜机制)。 一、Poker 类(扑克牌) Car......

Herishwater的博客 1万+

本地化部署 DeepSeek,构建单细胞与空间转录组 AI 分析平台

本地化部署 DeepSeek,构建单细胞与空间转录组 AI 分析平台

weixin_53637133的博客 181
上一篇: Python 3.10 明年发布,都有哪些新特性?
下一篇: Python 30道高频面试题及详细解答
菜鸟学Python
博客等级 码龄9年 8086粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值