如題,詳細(xì)來講是,不但不能用split, dictionary和各種collection都不讓用!程序的要求是在一個(gè)txt格式的表格里,找到第九行最小的那個(gè)數(shù)字,并且通過這個(gè)數(shù)字,同時(shí)找到與數(shù)字同一列的,年份和四十四行的另一個(gè)數(shù)值。我的思路里,知道要用slicing,但是嘗試寫了一些之后發(fā)現(xiàn)因?yàn)闆]有剔除一行中的非數(shù)字字符所以運(yùn)行不了。min_num?=?100000
start_index?=?0?
index_num?=?0
min_index?=?0
i?=?0
def?open_file():
????'''Continously?prompt?for?file?until?successfully?opened.'''
????while?True:
????????in_file?=?input("input?the?filename:")
????????try:
????????????in_file?=?open?("GDP.txt","r")
????????????return?in_file
????????except:
????????????print("Error.?Please?input?again:")
????????????
in_file?=?open_file()
count?=?1
for?line?in?in_file:
????if?count?==?9:
????????line9?=?line
????????print?(len(line9))
????????print?(line9[76:303:12])
????????while?i?<?len?(line9):
????????????if?line9[i].isdigit()?is?False:
????????????????checking_value?=?eval(line9[start_index:i])
????????????????if?checking_value?<?min_num:
????????????????????min_num?=?checking_value
????????????????????min_index?=?index_num
????????????????start_index?=?i?+?1?
????????????????index_num?+=?1
????????????i?+=?1
????????print(min_num,?min_index)
????count?+=?1
print?(line9)求助!我這樣寫方法對嗎?有錯(cuò)誤怎么修改?GDP.txt
3 回答

cnaz
TA貢獻(xiàn)3條經(jīng)驗(yàn) 獲得超0個(gè)贊
因?yàn)槭浅鯇W(xué)者,所以用的是笨方法?,F(xiàn)在寫完了一部分,在查找第九行的最小值的時(shí)候就出現(xiàn)了問題
index?=?0 min_value_str=str("10000") n=1 #中間是一段讀文件和得到具體行數(shù)的操作 ???? for?value?in?line9: ????value=?line9[76+12*n:76+12*(n+1)] ????if?value?<?min_value_str: ????????min_value_str?=?value ????????n?+=?1 print(line9) print(value)
line9可以很好的輸出,但是value確實(shí)在第三個(gè)數(shù)字就停下了。如果把n+= 1 和if 平行的話就根本顯示不出value
請問是哪里出錯(cuò)了呢?
添加回答
舉報(bào)
0/150
提交
取消