python如何输出字符串_在Python中的while循环中打印输出字符串

所以我的问题是:我在while循环中使用if-elif-else子句创建了一个while。 我提示用户输入y或n,不区分大小写。 但是我希望循环一直循环,直到他们输入y,Y,n,N来打印出相应的字符串。 但是,当我输入任何字符串或整数时,它会像我想要的那样继续循环,但是当我输入y,Y,n,N时,它仍会继续循环,并且也不会打印我想要的字符串。

1

2

3

4

5

6

7

8

9

10

11

12var = input("Enter Y/N:")

while var != 'y' or var != 'Y' or var != 'n' or var != 'N' :

if var == 'y' or var == 'Y' :

print("You said yes")

break

elif var == 'n' or var == 'N':

print("You said no")

break

else:

input("Enter Y/N:")

将输入移至while循环中,并在顶部(循环之前)定义var =

您的if条件将始终跳至input(...)

是的,我想知道为什么他们不会评估。 如果删除输入功能,则可以得到所需的条件进行打印。 但是,它不会循环。

因为您正在检查输入是yes还是no,并且仅在输入不为while时输入while主体,所以您正在检查输入是否为yes / no(永远不会为真)。

因此,我将var = input(" Enter Y / N:")放入else子句中,它可以正常工作。 谢谢

根据您的帖子,您似乎希望有机会根据用户的输入跳过循环。为此,您可以使用以下算法:

1

2

3

4

5

6

7

8

9

10

11

12

13

14var = input("Enter Y/N:")

if var in ['y', 'Y']:

print("You said yes")

elif var in ['n', 'N']:

print("You said no")

else:

while True :

var = input("Enter Y/N:")

if var in ['y', 'Y']:

print("You said yes")

break

elif var in ['n', 'N']:

print("You said no")

break

为什么不使用var not in ['y', 'Y', 'n', 'N']这样的条件写?

1

2

3

4

5

6

7

8

9

10

11var = input("Enter Y/N:")

if var in ['y', 'Y']:

print("You said yes")

elif var in ['n', 'N']:

print("You said no")

while var not in ['y', 'Y', 'n', 'N']:

var = input("Enter Y/N:")

if var in ['y', 'Y']:

print("You said yes")

elif var in ['n', 'N']:

print("You said no")

我们可以将else语句切换为更明确的内容,而while语句也可以,但是您可以看到我们的代码似乎有更多的切入点。

唯一的问题是,我们使用冗余例程增加了切入点。

我认为在循环内实现输入更好,更易读。

对于python 3.x

1

2

3

4

5

6

7

8while True :

var = input("Enter Y/N:")

if var in ['y', 'Y']:

print("You said yes")

break

elif var in ['n', 'N']:

print("You said no")

break

对于python 2.x

1

2

3

4

5

6

7

8while True :

var = raw_input("Enter Y/N:")

if var in ['y', 'Y']:

print("You said yes")

break

elif var in ['n', 'N']:

print("You said no")

break

现在,我们有一个非常小的代码可以执行相同的操作。

我也注意到您只想阅读字母{y,n}。区分大小写是仅对用户有用的定义,大小写将产生相同的答案。因此,您可以降低或升高所有输入来简化条件

对于python 3.x

1

2

3

4

5

6

7

8while True :

var = input("Enter Y/N:").lower()

if var == 'y':

print("You said yes")

break

elif var == 'n':

print("You said no")

break

对于python 2.x

1

2

3

4

5

6

7

8while True :

var = raw_input("Enter Y/N:").lower()

if var == 'y':

print("You said yes")

break

elif var == 'n':

print("You said no")

break

是的,那也是另一种解决方案。 所以我可以在if语句中创建一个列表?

没有得到你的伴侣! 你可以改写吗?

我的问题已得到回答,因为您显然创建了一个列表并执行了大声笑。 谢谢