python的新手,理解一个小程序的逻辑,但有点卡住了。这就是我想要做的事情。
我希望程序生成5个随机数,然后使用冒泡排序按顺序对它们进行排序。然后,用户需要以任何顺序输入5个数字,程序将说明它是否在那里。
这是我到目前为止所做的事情。
import random
def randomNum()
list = []
list.append(random.sample(range(1, 100), 5))
print list
python的第一天,所以我在语法方面搞砸了一点,但最初看不出数字生成函数的错误。
然后,这就是我要冒泡的那种做法。
def bubble(list):
length = len(list) - 1
unsorted = True
while unsorted:
unsorted = False
for element in range(0,length):
#unsorted = False
if badList[element] > list[element + 1]:
hold = list[element + 1]
list[element + 1] = list[element]
list[element] = hold
unsorted = True
print list
else:
unsorted = True
return list
之后,我不确定如何获取输入并进行比较以查看它是否在该列表中。这是我到目前为止所拥有的。
任何指针?
答案 0 :(得分:0)
使用raw_input()
(Python 2)或input()
(Python 3)。切勿在Python 2中使用input()
,因为这是一个严重的安全问题。
如果您正在编写一个使用用户输入的模块并且要与两个Python版本一起使用,那么您可以使用Python的try ... except
机制
try:
input = raw_input
except NameError:
pass
...
answer = input('Which is smaller, 3 or 4? ')
请注意,input()
会返回string
,即一系列字符,因此如果您需要以下数字值,可能需要进一步处理answer
计算
<击> 撞击>
answer = input('Which is smaller, 3 or 4? ')
min_squared = answer**2
击> <击> 撞击>
answer = input('Which is smaller, 3 or 4? ')
answer = int(answer)
min_squared = answer**2
为此目的,您使用int()
内置(如上例所示)或float()
(如果需要浮点数)。
如果要检查容器中是否包含元素,则应使用in
运算符
if 4 in [1,2,3,4,5]: print('Found!')
...
if int(answer) in sorted_list:
print('You win!')
Python为您提供了不同类型的容器,list
tuple
&#39 {s} dict
&set
&#39 ; S。其中一些针对测试包含进行了优化(即dict
和set
&#39; s),而其他一些必须逐个元素进行扫描,以检查是否包含。< / p>
虽然此问题与您的案例无关,但如果您必须检查是否包含针对数百万项目列表的数千个项目,则使用set
而不是list
作为容器导致更好,更好的表现。
答案 1 :(得分:0)
首先,我想向您展示完整的代码,稍后我会发表评论:
import random
def randomNum():
return random.sample(range(1, 100), 5)
numbers_list = randomNum()
# print numbers_list
for _ in xrange(5):
num = int(raw_input())
if num in numbers_list:
print "%d is in the list" % num
else:
print "There is no %d in the list" % num
现在一步一步:
1 :
def randomNum():
return random.sample(range(1, 100), 5)
在这里,我们创建5个随机数的列表,然后将其返回(稍后我们将需要它,因此我们使用return
代替print
)。 random.sample是列表本身所以我们不需要在任何地方附加它,因为我们将有[[1,2,3]]这样的结构,它不是我们想要的。
2 :
numbers_list = randomNum()
# print numbers_list
在这里,我们创建一个由randomNum()
3 :
for _ in xrange(5):
num = int(raw_input())
if num in numbers_list:
print "%d is in the list" % num
else:
print "There is no %d in the list" % num
我们取5次用户号码并检查它是否在列表中。我们使用in
。我认为很容易理解in
的作用。如果在列表中为num,则打印num is in the list
,否则我们会打印num isn't in the list
5 :
我们不在这里使用sort,因为in
不需要对列表进行洗牌。