Мне нужна помощь с первым разделом программы, где я пытаюсь создать условие, которое будет предлагать пользователю только возможность ввода провинции, если в выбранной стране есть провинция перечисленные в файле данных. Например, если пользователь выбирает Австрию, в которой нет ни одной провинции, он не должен предлагать эту опцию. но если они выберут Австралию, то она должна запросить у них ввод провинции.
Я НЕ МОГУ ИСПОЛЬЗОВАТЬ модуль CSV, поскольку мой курс в Uni еще не охватывал модуль, и профессор предпочел бы, чтобы мы подали заявку основные c концепции чтения файлов. Мне больше не нужно, так как я уже получил основное решение.
Пример данных из этого файла:
province | country | 1/2/20 | 1/3/20 | 1/4/20|
--------------------------------------------------------------------
| Afghanistan| 0 | 1 | 2 |
| Albania | 0 | 0 | 1 |
Australian Capital Territory| Australia | 0 | 3 | 5 |
New South Wales | Australia | 4 | 5 | 6 |
| Austria | 0 | 3 | 4 |
(Для справки, данные мне нужны использовать это: https://portland-my.sharepoint.com/: x: / g / personal / msharma8-c_ad_cityu_edu_hk / ES7eUlPURzxOqTmRLmcxVEMBRGlLq6REGHx0hs_bNilPTw? e = 6Ybsm c) * 101 * 101 * 101 * 101 * 101 * мой * 101 * 101 * мой * 101 * 101 * мой * 101
7 * * * * * Теперь я не могу предлагать опцию ввода для провинции.
with open('covid19.csv', 'r') as f:
for line in f:
# this next line is not working ffs ahhh, it doesnt seem to understand what i need
if (country == line.split(',')[1]) and len(line.split(',')[0])>1:
while True:
province = raw_input('input a province/district here: ')
if province.lower() in province_list:
break
Я также попытался:
if (country == line.split(',')[1]) and (line.split(',')[0]) != '':
Для дальнейшего ознакомления, вот весь кусок кода, который я поместил в функцию:
with open('covid19.csv', 'r') as f:
country_list = []
province_list = []
date_list = ((f.readline().split(','))[4::])
date_list = [date[0:-2] for date in date_list if date[-4:]=='2020'] # to put all the dates in the same format
for line in f:
#list of all countries and provinces
province_list.append(line.split(',')[0].lower())
country_list.append(line.split(',')[1].lower())
while True:
country = raw_input("input a country here: ")
if country.lower() in country_list:
break
with open('covid19.csv', 'r') as f:
for line in f:
# this line is not working ffs ahhh, it doesnt seem to understand
if (country == line.split(',')[1]) and len(line.split(',')[0])>1:
while True:
province = raw_input('input a province/district here: ')
if province.lower() in province_list:
break
while True:
date = raw_input('input a date in m/d/yy: ')
if date in date_list:
print 'You have selected the date:',date
break
else:
print 'please enter a date in a valid format'