为什么不选D
[attach{:5_104:} a b c q 他们是一次性输进去的,是一个字符串,退出是单独输入Q或q 一次性输入 abcq 明显不对吧。。。你有自己写出来试过吗 题没说清楚,是一次性输入abcq所以不会触发,好好的编程,硬是变成了应试考试,建议不写这种无聊的题目 这种应试太没意思了,答案很重要吗?知道程序怎么运行的不就得了 s = input()# 先赋值,后判断。所以,即使按了Q退出键,也会被赋值到变量里面输出的。print(s) 实际上哪个答案都是错的,如果输入“a b c q”,控制台应该显示“请输入一个字符串,按Q结束:a b c q”,并且没有任何结果,程序也没有结束
如果输入a 回车 b 回车 c 回车 q 回车,控制台应该显示:
请输入一个字符串,按Q结束:a
a
请输入一个字符串,按Q结束:b
b
请输入一个字符串,按Q结束:c
c
请输入一个字符串,按Q结束:q
z5560636 发表于 2020-12-24 10:55
s = input()# 先赋值,后判断。所以,即使按了Q退出键,也会被赋值到变量里面输出的。
看清楚,print(s)是在循环里面得 风丶少 发表于 2020-12-24 16:49
看清楚,print(s)是在循环里面得
好吧,看错了, a b c q 按回车时候才表示执行完了 s = input()
只是单个字符比较而已,‘a b c q’ == ‘Q’or‘a b c q’ == ‘q’
不会成立,所以不会跳出。 脑筋急转弯 如果输入Q或q才会停止循环,否者输入什么打印什么。Q和q本身也在字符串内他是条件不是命令(萌新) 本帖最后由 一个账号 于 2021-1-7 20:15 编辑
不要理解错了,这个程序是判断整个字符串为 “q” 的时候才会结束循环
运行以下代码输入 “a b c q”可以得到 “a b c ” 的结果:
while True:
s = input("请输入:")
for i in s:
if i != "q" and i != "Q":
print(i, end="")
continue
break
print()
这里的输入是:abcq
而不是:q 所以不会结束
这个if判断是输入字符串判断 题上都说了输入的是字符串,到q结束,后面那个判断就是在实现结束输入的功能,然后下一句是输出字符串,你输入的字符串是abcq,自然也输出它 学校老师出的题吧?严格的说出的有问题。 字符 a b c q 这是误导,因为学过c 和java 都知道,字符是指单个字符。而"abcq"在Python 中也被称为字符串而不是字符。它跟你纠口条子,说a 和d 哪个对都是有理。这题是考中国出题人的智慧而不是考程序。如果是用英文 character 和string 完全不同,就不会出这种问题。
页:
[1]