我为冒泡排序编写了这段代码,它显示了这个错误:
File "bubble.py", line 6
for i in range(0,n)
Run Code Online (Sandbox Code Playgroud)
任何人都可以告诉我如何使用该range功能,以便我可以n从用户获取输入并循环它?
print "Enter n"
n = raw_input()
print "enter elements"
a = []
for i in range(0,n)
temp = raw_input()
a[i].append(temp)
for i in range(0,n)
for j in range(0,n-1)
if a[j]>a[j+1]
temp = a[j]
a[j] = a[j+1]
a[j+1] = temp
for i in range(0,n)
print a[i]
Run Code Online (Sandbox Code Playgroud)
Python使用冒号来启动块,每个块用于,if,while等需要a:最后
for i in range(0,n):
for j in range(0,n-1):
if a[j]>a[j+1]:
Run Code Online (Sandbox Code Playgroud)
其他问题:
n = raw_input()
Run Code Online (Sandbox Code Playgroud)
n将是一个str,你需要将它转换为如下所示的int:
n = int(raw_input())
Run Code Online (Sandbox Code Playgroud)
使用range,0是隐式启动,使用range(n)与...相同range(0, n)
在你的第一个循环中
temp = raw_input()
a[i].append(temp)
Run Code Online (Sandbox Code Playgroud)
但是它a是一个没有任何内容的列表,你就像列表一样使用它.相反,我相信你只是想附加到a,并且你必须再次将值转换为数字
temp = float(raw_input())
a.append(temp)
Run Code Online (Sandbox Code Playgroud)
这也可能只是
a.append(float(raw_input()))
Run Code Online (Sandbox Code Playgroud)
raw_input函数接受一个字符串,它打印为用户提示符.您可以缩短前两行
n = int(raw_input("Enter n"))
Run Code Online (Sandbox Code Playgroud)
你的最后一个for循环非常C风格.你应该更喜欢更加pythonic"for-each"循环.不迭代索引,迭代元素,将最后一个循环更改为
for e in a:
print e
Run Code Online (Sandbox Code Playgroud)
你可能也想print a直接.
最后,值得一提的是python中已经有了sort函数.如果您的任务不是编写排序函数,那么只需通过执行即可
a.sort()
Run Code Online (Sandbox Code Playgroud)
从用户那里读完所有内容后.
| 归档时间: |
|
| 查看次数: |
158 次 |
| 最近记录: |