gpt4 book ai didi

python - 在 Python 中不使用条件语句四舍五入为整数 - 逻辑

转载 作者:太空宇宙 更新时间:2023-11-04 08:58:01 25 4
gpt4 key购买 nike

我正在 Udacity 上一门 Python 类(class),我试图在不看答案的情况下自己解决这个问题。也许你能给我一些逻辑提示?

以下是说明和我目前所掌握的内容。我们还没有学习条件语句,所以我不能使用它们。我们只学习了如何分配/打印变量、字符串、索引字符串、子序列和 .find。他们刚刚在最后的练习中介绍了 str 命令。

# Given a variable, x, that stores the 
# value of any decimal number, write Python
# code that prints out the nearest whole
# number to x.
# If x is exactly half way between two
# whole numbers, round up, so
# 3.5 rounds to 4 and 2.5 rounds to 3.
# You may assume x is not negative.

# Hint: The str function can convert any number into a string.
# eg str(89) converts the number 89 to the string '89'

# Along with the str function, this problem can be solved
# using just the information introduced in unit 1.

# x = 3.14159
# >>> 3 (not 3.0)
# x = 27.63
# >>> 28 (not 28.0)
# x = 3.5
# >>> 4 (not 4.0)

x = 3.54159

#ENTER CODE BELOW HERE

x = str(x)
dec = x.find('.')
tenth = dec + 1

print x[0:dec]

////

所以这让我打印了小数点后的字符,但我无法弄清楚如何让计算机检查“十分之一”是 > 4 还是 < 5 打印出来根据答案的东西。

我认为如果“十分之一”不是 > 4,我可能会返回 -1,但我不知道如何让它打印 x[0:dec] 如果它是 < 5 和 x[0:dec]+1 如果它是 > 4。

:/

有人可以给我一个正确方向的提示吗?

最佳答案

这是一个奇怪的限制,但你可以这样做:

x = str(x)
dec_index = x.find('.')
tenth_index = dec_index + 1
tenth_place = x[tenth_index] # will be a string of length 1
should_round_up = 5 + tenth_place.find('5') + tenth_place.find('6') + tenth_place.find('7') + tenth_place.find('8') + tenth_place.find('9')

print int(x[0:dec_index]) + should_round_up

我们所做的就是看第十位。由于如果未找到参数,.find() 返回 -1,如果十分位为 5,则 .find() 调用的总和将为 -4 、6、7、8 或 9(因为 .find() 调用之一将成功并返回 0),但如果第十位是 -5 0、1、2、3 或 4。我们将其加 5,这样 should_round_up 如果我们应该四舍五入则等于 1,否则等于 0。将其添加到整数部分,我们就完成了。


也就是说,如果您不受此人为限制,您会:

print round(x)

继续你的生活。

关于python - 在 Python 中不使用条件语句四舍五入为整数 - 逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28400554/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com