2015-11-23 2 views
-3

У меня есть код, который работает правильно, когда мой код не находится в def def и не имеет отступов. Вот мой код, когда он имеет отступ.Мой код работает, когда не имеет отступ, а не в функции def в python.

import csv 

my_file = open("marqueeTables.csv", "r") 
search_data = input("Please enter the data you are looking for") 
search_data = (search_data + " metre wide") 
#print(search_data) 
reader = csv.reader(my_file) 
for row in my_file: 
    if search_data in str(row): # == "6 metre wide": 
     stripedRow = row.strip() 
     splitStrippedRow = stripedRow.split(",")[0] 
     print(splitStrippedRow) 
     #print(row) 

It prints "6 metre wide" or "12 metre wide" depending on whether I type 6 or 12. 

Вот аналогичный код, но в опр (только несколько вещей, которые были изменены):

def userInfo(): 

    while True: 
     w = str(input("What size width marque would you like 6 or 12: ")) 

     if w == "6": 
      myFile = open("userDetails.csv", "a+") 
      myFile.write(str(w) + ", ") 
      myFile.close() 
      break 
     elif w == "12": 
      myFile = open("userDetails.csv", "a+") 
      myFile.write(str(w) + ", ") 
      myFile.close() 
      break 
     else: 
      print("Pleas type 6 or 12") 
     w = (w + "metre wide") 

my_file = open("marqueeTables.csv", "r") 
#search_data = input("Please enter the data you are looking for") 
reader = csv.reader(my_file) 
for row in my_file: 
    if w in str(row): 
     stripedRow = row.strip() 
     splitStrippedRow = stripedRow.split(",")[0] 
     print(splitStrippedRow) 
userInfo() 

Когда я запускаю код печатает «6 метров в ширину» и «пассажировместимость» и «12 метров в ширину» и «Вместимость места» снова (потому что он находится в таблице дважды.)

Может ли кто-нибудь сказать мне, почему мой код не работает в python, это было бы здорово. Я использую python 3.5. Спасибо

+2

Что значит «не работает»? Пожалуйста, прочитайте [mcve]. –

+0

В вашем втором кодовом блоке вы не вызываете функцию 'userInfo' ... – AlG

+0

Также в вашем втором блоке кода' elif w == "12": 'не должно быть необъективным. – agold

ответ

1

Во втором примере кода вы определяете userInfo, но вы его никогда не называете, и поэтому он никогда не запускается.

+0

У меня есть, но он все еще не работает должным образом – rodude123

+0

@ rodude123: I см. вызов функции во втором фрагменте. (Подсказка: он будет выглядеть как 'userInfo()'.) – jwodder

+0

Даже после того, как я вызвал функцию, она дает неправильный вывод, который я хочу, есть другое решение для этого – rodude123

 Смежные вопросы

  • Нет связанных вопросов^_^