盘点一道Python取整的基础题目
共 2382字,需浏览 5分钟
· 2022-07-10
回复“书籍”即可获赠Python从入门到进阶共10本电子书
大家好,我是Python进阶者。
一、前言
前几天在小小明大佬的Python群里边看到一个昵称为【Big.白】的粉丝问了一道Python
取整的基础题目,后来拿到钻石交流群问了一下,如下图所示。
![](https://filescdn.proginn.com/fedd475d831b2944f525749e832e2d10/04d41ff7bbe616e4005e7f277ff3acc1.webp)
![](https://filescdn.proginn.com/24990869fe98d80baec019770de06cd6/fc3deea711ef9eed13b85f105ddea716.webp)
二、实现过程
这是个基础题目,看上去确实不难,关键是逻辑实现。一开始自己给了一个解答,如下所示:
def brf_cnt(consume_number):
if abs(consume_number) < 13:
return 1
elif 13 <= abs(consume_number) < 21:
return 2
else:
return consume_number // 10 + 1
if __name__ == '__main__':
consume_number = 33
print(brf_cnt(consume_number))
初步看没啥问题,但是在输入30的时候,小于31,应该是3人,输出却是4,这样的话,是存在问题的!需要进行修改下。
后来【瑜亮老师】也给了一份代码,思路是向上取整,如下所示:
import math
cl = math.ceil
nums = [10, 13, 20, 21, 30, 31, 33]
for i in nums:
if i < 13:
print(1)
else:
print(cl(i/10))
经过测试,满足题目要求。
![](https://filescdn.proginn.com/56fe002cdc40b4648d6c28b6f3476b53/87b23f289130c2a7f4e467d0473df1e3.webp)
后来【月神】也给了一个思路,也是可以实现的。
![](https://filescdn.proginn.com/b3b7ca8ca4815b9d4b560fc5b32875eb/22968e2130a21d3b499f78bc0ae07064.webp)
再之后,【Big.白】自己也给了一份代码,思路是一致的,也是满足要求的。
def money_people(x):
if x < 13:
return 1
else:
return (x - 1) // 10 + 1
print(money_people(20))
![](https://filescdn.proginn.com/fd7f607ba8977c9eb0f5af97e71a4e97/38c1394334f133e9960a24244ddb2136.webp)
后来针对上面的这个代码,还可以优化下,成为三元运算符,或者说三目表达式,如下所示:
def money_people(x):
return 1 if x < 13 else (x - 1) // 10 + 1
![](https://filescdn.proginn.com/5c64ae1f5d288524e96087dad6a63c40/9218f1e92627e01f3c5407ff362fed2f.webp)
如果有遇到问题,随时联系我解决,欢迎加入我的Python
学习交流群。
三、总结
大家好,我是Python进阶者。这篇文章主要盘点了一道Python
基础的问题,文中针对该问题给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。
最后感谢粉丝【Big.白】提问,感谢【瑜亮老师】、【月神】、【Big.白】给出的思路和代码解析,感谢【dcpeng】、【Jason】、【产后修复恢复紧致】、【猫药师Kelly】、【冫马讠成】、【逸 】等人参与学习交流。
小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。
------------------- End -------------------
往期精彩文章推荐:
![](https://filescdn.proginn.com/eb9d27b02f5f3339570e947d4461fff9/125700d44fb817f31418e2661931a101.webp)
欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持
想加入Python学习群请在后台回复【入群】
万水千山总是情,点个【在看】行不行
/今日留言主题/
随便说一两句吧~~