4

# yyds干货盘点 # 盘点一道Python取整的基础题目

 2 years ago
source link: https://blog.51cto.com/u_13389043/5450866
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

大家好,我是Python进阶者。

前几天在小小明大佬的Python群里边看到一个昵称为【Big.白】的粉丝问了一道​​Python​​取整的基础题目,后来拿到钻石交流群问了一下,如下图所示。

# yyds干货盘点 # 盘点一道Python取整的基础题目_Python基础

# yyds干货盘点 # 盘点一道Python取整的基础题目_Python学习_02

二、实现过程

这是个基础题目,看上去确实不难,关键是逻辑实现。一开始自己给了一个解答,如下所示:

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))

经过测试,满足题目要求。

# yyds干货盘点 # 盘点一道Python取整的基础题目_Python基础_03

后来【月神】也给了一个思路,也是可以实现的。

# yyds干货盘点 # 盘点一道Python取整的基础题目_python_04

再之后,【Big.白】自己也给了一份代码,思路是一致的,也是满足要求的。

def money_people(x):
if x < 13:
return 1
else:
return (x - 1) // 10 + 1


print(money_people(20))
# yyds干货盘点 # 盘点一道Python取整的基础题目_Python基础_05

后来针对上面的这个代码,还可以优化下,成为三元运算符,或者说三目表达式,如下所示:

def money_people(x):
return 1 if x < 13 else (x - 1) // 10 + 1
# yyds干货盘点 # 盘点一道Python取整的基础题目_Python零基础_06

如果有遇到问题,随时联系我解决,欢迎加入我的​​Python​​学习交流群。

大家好,我是Python进阶者。这篇文章主要盘点了一道​​Python​​基础的问题,文中针对该问题给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

最后感谢粉丝【Big.白】提问,感谢【瑜亮老师】、【月神】、【Big.白】给出的思路和代码解析,感谢【dcpeng】、【Jason】、【产后修复恢复紧致】、【猫药师Kelly】、【冫马讠成】、【逸 】等人参与学习交流。

小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK