首先,我正在使用python。好的,所以我需要打印迭代通过这个for循环后找到的最小浮点数。我尝试使用min(),我得到一个错误,说'浮动'对象不可迭代。我想不出另一种方法来打印出最小的数字或接受所有的浮点数,所以我可以使用min()函数。任何帮助,将不胜感激。这是我的代码:
def decryption():
alphabet=["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]
phrase=input('What would you like decrypted?')
number=0
for number in range(0,26):
e=0+number
t=0+number
o=0+number
a=0+number
i=0+number
n=0+number
for letter in phrase:
if letter== 'e':
e+=1
if letter== 't':
t+=1
if letter== 'o':
o+=1
if letter== 'a':
a+=1
if letter== 'i':
i+=1
if letter== 'n':
n+=1
e_freq= .1119-e/10
e_ans= e_freq*e_freq
t_freq= .0928-t/10
t_ans= t_freq*t_freq
o_freq= .0819-o/10
o_ans= o_freq*o_freq
a_freq= .0754-a/10
a_ans= a_freq*a_freq
i_freq= .0710-i/10
i_ans= i_freq*i_freq
n_freq= .0643-n/10
n_ans= n_freq*n_freq
square_sum= e_ans+t_ans+o_ans+a_ans+i_ans+n_ans
答案 0 :(得分:1)
min
函数将数字列表作为参数。因此,您需要创建一个包含要搜索的所有数字的数组,然后才能使用min
。 (实际上,正如错误所说,它需要一个可迭代的,这比列表更通用)
另一种方法是跟踪到目前为止看到的最小的一个,并在每次迭代结束时进行检查。
if smallest_seen > square_sum:
smallest_seen = square_sum
然后,在循环结束时,smallest_seen将是所有计算的square_sum值中的最小值。
这是一个更完整的例子。
import sys
import random
smallest_seen = sys.float_info.max
for i in range(26):
some_num = random.random()
if smallest_seen > some_num:
smallest_seen = some_num
print(smallest_seen)