北戴河 发表于 2020-12-23 20:08:43

为什么不选D

[attach{:5_104:}

太阳总会升起 发表于 2020-12-23 20:08:44

a b c q 他们是一次性输进去的,是一个字符串,退出是单独输入Q或q

均昊山 发表于 2020-12-23 20:20:41

一次性输入 abcq

pythonsean 发表于 2020-12-23 20:27:13

明显不对吧。。。你有自己写出来试过吗

v.ki 发表于 2020-12-23 20:45:57

题没说清楚,是一次性输入abcq所以不会触发,好好的编程,硬是变成了应试考试,建议不写这种无聊的题目

tryhi 发表于 2020-12-23 22:06:09

这种应试太没意思了,答案很重要吗?知道程序怎么运行的不就得了

z5560636 发表于 2020-12-24 10:55:34

s = input()# 先赋值,后判断。所以,即使按了Q退出键,也会被赋值到变量里面输出的。


print(s)

tryhi 发表于 2020-12-24 15:46:41

实际上哪个答案都是错的,如果输入“a b c q”,控制台应该显示“请输入一个字符串,按Q结束:a b c q”,并且没有任何结果,程序也没有结束
如果输入a 回车 b 回车 c 回车 q 回车,控制台应该显示:
请输入一个字符串,按Q结束:a
a
请输入一个字符串,按Q结束:b
b
请输入一个字符串,按Q结束:c
c
请输入一个字符串,按Q结束:q

风丶少 发表于 2020-12-24 16:49:38

z5560636 发表于 2020-12-24 10:55
s = input()# 先赋值,后判断。所以,即使按了Q退出键,也会被赋值到变量里面输出的。




看清楚,print(s)是在循环里面得

z5560636 发表于 2020-12-24 17:07:25

风丶少 发表于 2020-12-24 16:49
看清楚,print(s)是在循环里面得

好吧,看错了, a b c q   按回车时候才表示执行完了 s = input()

只是单个字符比较而已,‘a b c q’ == ‘Q’or‘a b c q’ == ‘q’

不会成立,所以不会跳出。

XiaoPaiShen 发表于 2020-12-25 09:47:06

脑筋急转弯

楼林闲人 发表于 2020-12-25 17:03:01

如果输入Q或q才会停止循环,否者输入什么打印什么。Q和q本身也在字符串内他是条件不是命令(萌新)

一个账号 发表于 2021-1-5 20:31:24

本帖最后由 一个账号 于 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()



斯诺非 发表于 2021-1-6 12:24:39

这里的输入是:abcq
而不是:q 所以不会结束
这个if判断是输入字符串判断

撕裂天堂 发表于 2021-1-6 16:38:18

题上都说了输入的是字符串,到q结束,后面那个判断就是在实现结束输入的功能,然后下一句是输出字符串,你输入的字符串是abcq,自然也输出它

hehex 发表于 2021-1-8 09:43:33

学校老师出的题吧?严格的说出的有问题。 字符 a b c q 这是误导,因为学过c 和java 都知道,字符是指单个字符。而"abcq"在Python 中也被称为字符串而不是字符。它跟你纠口条子,说a 和d 哪个对都是有理。这题是考中国出题人的智慧而不是考程序。如果是用英文 character 和string 完全不同,就不会出这种问题。
页: [1]
查看完整版本: 为什么不选D