while 循环不会走到开头
While loop does not go to the beginning
我写了 python 与用户输入交互的 while 循环。
有一个 table 带有日期列。
想法是询问用户是否要从 table 中删除 cols。如果是,则需要指定给定列表中的列。它删除列并再次询问是否需要删除更多列,直到得到答案否,然后保存 table.
问题:如果用户想要删除超过 1 列,则循环不再接受/理解列名。
脚本:
x=input('Would you like to drop columns? ')
print(x)
if x=='yes':
print('The available columns will be print now. please select each time only one column.')
print('available columns are:',new_dates)
d_bye=input('date to drop:')
print(d_bye)
df.drop(d_bye,axis=1,inplace=True)
rep=input('do you have more columns to drop?')
print(rep)
while rep == 'yes':
d_bye=input('column to drop:')
df.drop(d_bye,axis=1,inplace=True)
print(rep)
if rep=='no':
break
else:
print('please type yes or no!')
print(rep)
df.to_csv(result_table)
'Process accomplished!'
这个在特定情况下的输出是:
Would you like to drop columns? yes
yes
he available columns will be print now. please select each time only one column.
available columns are: ['a','b','c','d']
date to drop: a
a
do you have more columns to drop? yes
yes
column to drop: c
yes
please type yes or no!
yes
columnn to drop: d
yes
please type yes or no!
yes
column to drop: no
如您所见,在它删除了第一个(我检查过并且确实如此)之后,对于第二个和第三个它不起作用。我怎样才能让它在 while 循环中从更多的列中跳出?
您从未要求用户更新他的决定。您可以使用新的 :=
运算符。
while (rep := input("Enter the loop? (yes) ")) == "yes":
print("We are inside!")
print("Exit! Moving on...")
您还可以注意到不需要检查负输入。您让用户有机会使用 yes
输入进入循环。要退出循环,用户可以简单地 [Enter]
或键入除 yes
之外的任何键
我写了 python 与用户输入交互的 while 循环。
有一个 table 带有日期列。
想法是询问用户是否要从 table 中删除 cols。如果是,则需要指定给定列表中的列。它删除列并再次询问是否需要删除更多列,直到得到答案否,然后保存 table.
问题:如果用户想要删除超过 1 列,则循环不再接受/理解列名。
脚本:
x=input('Would you like to drop columns? ')
print(x)
if x=='yes':
print('The available columns will be print now. please select each time only one column.')
print('available columns are:',new_dates)
d_bye=input('date to drop:')
print(d_bye)
df.drop(d_bye,axis=1,inplace=True)
rep=input('do you have more columns to drop?')
print(rep)
while rep == 'yes':
d_bye=input('column to drop:')
df.drop(d_bye,axis=1,inplace=True)
print(rep)
if rep=='no':
break
else:
print('please type yes or no!')
print(rep)
df.to_csv(result_table)
'Process accomplished!'
这个在特定情况下的输出是:
Would you like to drop columns? yes
yes
he available columns will be print now. please select each time only one column.
available columns are: ['a','b','c','d']
date to drop: a
a
do you have more columns to drop? yes
yes
column to drop: c
yes
please type yes or no!
yes
columnn to drop: d
yes
please type yes or no!
yes
column to drop: no
如您所见,在它删除了第一个(我检查过并且确实如此)之后,对于第二个和第三个它不起作用。我怎样才能让它在 while 循环中从更多的列中跳出?
您从未要求用户更新他的决定。您可以使用新的 :=
运算符。
while (rep := input("Enter the loop? (yes) ")) == "yes":
print("We are inside!")
print("Exit! Moving on...")
您还可以注意到不需要检查负输入。您让用户有机会使用 yes
输入进入循环。要退出循环,用户可以简单地 [Enter]
或键入除 yes