饺影 发表于 2022-7-1 11:25:19

代码不运行

with open("1.txt","r") as f:
    data = f.read()

for con in data:
    (str(con))
    if con == "echo":
      temp = 0
      if temp == 0:
            temp += 1
            continue
      if temp == 1:
            print(con)

vscode内没报错,运行没报错,但是没有输出东西,为点啥啊.求大佬解答

jackz007 发表于 2022-7-1 11:35:07

本帖最后由 jackz007 于 2022-7-1 11:51 编辑

b = False
with open("1.txt","r") as f:
    data = f . read()
for con in data:
    if b:
      print(con)
    else:      
      if con . strip() . lower() == 'echo':
            b = True

饺影 发表于 2022-7-1 12:07:49

jackz007 发表于 2022-7-1 11:35


https://wwn.lanzout.com/iIQyx0773kyh

临时号 发表于 2022-7-1 17:57:29

你的程序执行了
从你的代码来看
data变量接受f.read()返回的字符串
而下一步你用for循环遍历data这个字符串
所以每一次执行for循环,con这个变量应该都是一个字符,可你却将它与四个字符的字符串相匹配,自然返回False
所以print(con)没有执行,让你认为程序没有执行

jackz007 发表于 2022-7-1 18:24:41

临时号 发表于 2022-7-1 17:57
你的程序执行了
从你的代码来看
data变量接受f.read()返回的字符串


       每次循环 con 从 data 中读到的是只是 1 个字符?no,你搞错了,每次循环读取到的是 1 行,也就是说,是一个字符串。

临时号 发表于 2022-7-1 18:32:50

本帖最后由 临时号 于 2022-7-1 18:37 编辑

jackz007 发表于 2022-7-1 18:24
每次循环 con 从 data 中读到的是只是 1 个字符?no,你搞错了,每次循环读取到的是 1 行,也就是 ...

实践出真知,你可以尝试运行以下代码
1.txt的内容:echo
代码:
with open("1.txt","r") as f:
    data = f.read()

for con in data:
    (str(con))
    print("con:",con)
    if con == "echo":
      temp = 0
      if temp == 0:
            temp += 1
            continue
      if temp == 1:
            print(con)

运行结果:
D:\command\Python>python test.py
con: e
con: c
con: h
con: o

所以每次con其实只是读到了一个字符而已

饺影 发表于 2022-7-1 19:39:02

jackz007 发表于 2022-7-1 18:24
每次循环 con 从 data 中读到的是只是 1 个字符?no,你搞错了,每次循环读取到的是 1 行,也就是 ...

奥,woc,通了,我说呢,谢谢了
页: [1]
查看完整版本: 代码不运行