簡體   English   中英

冒泡排序算法輸入不起作用(Python)

[英]Bubble sort algorithm input not working (Python)

這是一個關於python中數組處理的問題。

我有以下代碼從變量sorted讀取數字數組:

print("Original: ",sorted)

for largeRepeat in range(0,len(sorted)):
    for Repeat in range(0,len(sorted)-1):
        Number1 = sorted[Repeat]
        Number2 = sorted[Repeat + 1]
        if Number1 > Number2:
            sorted[Repeat] = sorted[Repeat+1]
            sorted[Repeat+1] = Number1



print("Sorted: ",sorted)

現在,我遇到的問題是,我可以通過 2 種不同的方式為數組分配一些值,並將其硬編碼到程序中:

sorted = [1,11,22,2]

或通過用戶輸入,拆分使用split()提供的數字:

inputs = input("Enter numbers as comma (,) separated values: ")
ToSort = inputs.split(",")
sorted = ToSort

如果我使用永久方法,程序會正確返回:

Original:  [1, 11, 22, 2]
Sorted:  [1, 2, 11, 22]

但是,如果我使用用戶輸入,程序會錯誤地返回:

Original:  ['1', '11', '22', '2']
Sorted:  ['1', '11', '2', '22']

任何人都可以提供有關為什么會發生這種情況的任何見解,我已經嘗試多次運行該程序並將其隔離到此特定部分。

我還注意到它將用戶輸入中的數字作為文本字符串返回,但我不知道這會如何導致問題。 (對不起,我對此很陌生!)

提前致謝!

編輯:謝謝,已經解決了

您需要將每個輸入轉換為int

ToSort = list(map(int, inputs.split(",")))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM