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

Python新手,可以在一个基本问题上使用一些指导,python,Python,我试着做一个基本的问题,在这里我得到了浮点3.142,这个问题要求做一个列表,使用数字1,2,3,但只使用3.142来得到列表中的数字。我知道int(3.142)给出3;int(3.142/3.142)给出1,但我不确定如何得到2。有没有我没有考虑的数学函数 谢谢好吧,要得到2,你可以做(3.142+3.142)/3.142:)。一种方法是在字符串之间来回转换: # convert float to a string num = 3.142 strnum = str(num) # order

我试着做一个基本的问题,在这里我得到了浮点3.142,这个问题要求做一个列表,使用数字1,2,3,但只使用3.142来得到列表中的数字。我知道int(3.142)给出3;int(3.142/3.142)给出1,但我不确定如何得到2。有没有我没有考虑的数学函数


谢谢

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

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

# 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]

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

int(3.142) = 3
int(3.142 % 3.142) = 2
int(3.142 / 3.142) = 1

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

为1和2获得更多的干代码,而不重复使用square

import math

int(math.sqrt(3.142) == 1

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

:)

列表(范围(1,int(3.142)+1))
他不能使用1:(.Hint:1+1=2你从哪里得到
int(3.142%3.142)==2
的?它在我的解释器中检查为0,就像它应该的那样。你确定第二个吗?上次我检查
x%x=0