为了账号安全,请及时绑定邮箱和手机立即绑定

Python新手,可以在基本问题上使用一些指导

Python新手,可以在基本问题上使用一些指导

喵喔喔 2022-08-16 18:14:38
我试图做一个基本问题,其中我得到了浮点数3.142,问题要求制作一个使用数字1 2 3的列表,但只使用3.142来获取列表中的这些数字。我知道int(3.142)给出了3;int(3.142/3.142)给出了1,但我不确定如何得到2。有没有某种我没有考虑的数学函数?
查看完整描述

4 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

好吧,要得到2,你可以做:)。(3.142 + 3.142) / 3.142



查看完整回答
反对 回复 2022-08-16
?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

我们,程序员喜欢遵循DRY原则的代码(不要重复自己)


要获取 1 和 2 的更多 DRY 代码,而无需重复使用方块。


import math


int(math.sqrt(3.142) == 1


round(math.sqrt(3.142)) == 2

:)


查看完整回答
反对 回复 2022-08-16
?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

一种方法是在字符串之间来回转换:


# convert float to a string

num = 3.142

strnum = str(num)


# order the string lexicographically, using built-in method sorted

ordered = sorted(strnum)

# ordered = ['.', '1', '2', '3', '4']


# get the middle three elements at indices 1, 2, and 3, using a list slice

middle = ordered[1:4]

# middle = ['1', '2', '3']


# convert them into integers if desired, using a list comprehension

middle_ints = [int(e) for e in middle]

# middle_ints = [1, 2, 3]


查看完整回答
反对 回复 2022-08-16
?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

您可以使用运算符“%”并得到2。


int(3.142) = 3

int(3.142 % 3.142) = 2

int(3.142 / 3.142) = 1


查看完整回答
反对 回复 2022-08-16
  • 4 回答
  • 0 关注
  • 149 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号