Python 判断两个字符串内容相同的字符串,却返回了 flase

2018-11-03 19:49:25 +08:00
 337136897

发送了一个很不可思议的事情,两个相同的字符串,缺返回 flase。先上图

整块代码

#coding=gbk
time = []
arrayA = []
inputfrist =[]
arrayB = []

returnfirst = []
inputsecond = []
resultone = []
resulttwo = []
resultwhree = []
result = []

a = 0

def returnfirstMethod(word):
    if word == '有':
        return '沒'
    else:
        return '有'
def resultoneMethod(inputfrist,arrayA,inputsecond,returnfirst):
    if inputfrist =='' or inputfrist ==0:
        return ''
    else:
        if arrayA == inputsecond:
            return inputfrist
        else:
            return returnfirst

def resulttwoMethod(inputsecond):
    if inputsecond == 'A':
        return 'B'
    else:
        return 'A'

def resultthreeMethod(rethodone):
    if rethodone == '':
        return ''
    else:
        if rethodone =='有':
            return '沒'
        else:
            return '有'

def resultMethod(inpultfirst,preresultone,resultone):
    if inputfrist == '' or inputfrist == 0:
        return ''
    else:
        if preresultone==resultone:
            return '平'
        else:
            return '跳'

def start(a):
    print("正在进行第%d 次试验" %a)
    arrayA.append('A')
    print(arrayA[a])
    time.append(a)
    print(time[a])
    print("请输入有或没:")
    inputfrist.append(input())
    print(inputfrist[a])
    arrayB.append('B')
    print(arrayB[a])
    returnfirst.append(returnfirstMethod(inputfrist[a]))
    print(returnfirst[a])
    print('请输入 A 和 B:')
    inputsecond.append(input())
    print(inputsecond[a])
    resultone.append(resultoneMethod(inputfrist[a], arrayA[a], inputsecond[a], returnfirst[a]))
    print(resultone[a])
    resulttwo.append(resulttwoMethod(inputsecond[a]))
    print(resulttwo[a])
    resultwhree.append(resultthreeMethod(resultone[a]))
    print(resultwhree[a])
    if a > 0:
        result.append(resultMethod(inputfrist[a], resultone[a],resultone[a-1]))
        print('第%d 次的结果是:%s' % ((a), result[a]))
    else:
        result.append('')
    a = a + 1
    print('输入任意字符继续')
    stop = input()
    if stop == 'y':
        return 0
    else:
        return start(a)


start(a)

第一轮输入:没 B 第二轮输入:没 A 输出 跳 正确 第三轮输入:有 B 输出 跳 错了 原因是 进入了这个函数,传入的是一个数组,分别是 a 和 a-1,内容都是 '没',但是判断下来怎么返回 false?

3266 次点击
所在节点    Python
18 条回复
337136897
2018-11-03 19:51:49 +08:00
来个大佬帮帮忙呗
ltux
2018-11-03 20:18:18 +08:00
发生了不可思议的事情,通常情况下是你程序写错了。
dreasky
2018-11-03 20:26:50 +08:00
程序逻辑一团乱就不看了 ,但是两个一样? 一个是繁体'沒',一个是简体'没',这么低级的错误 .encode()出来一看就知道了,
ranleng
2018-11-03 20:37:02 +08:00
没 沒 这是两个字.
blindpirate
2018-11-03 20:53:32 +08:00
inputfrist flase 感人
337136897
2018-11-03 20:59:31 +08:00
@blindpirate 随便取的
337136897
2018-11-03 21:00:04 +08:00
@dreasky 我的天啊。搞了 2 个多小时,我的智商受到了冲击。什么破输入法,气死我了
di94sh
2018-11-03 21:19:41 +08:00
@dreasky #3 感觉楼主是在 反面证明 这两天几个帖子里面讨论的中文编程..
337136897
2018-11-03 21:22:10 +08:00
@di94sh 没有没有 ,测试用例随便的。嘻嘻嘻嘻嘻嘻嘻嘻嘻嗝
princelai
2018-11-03 21:29:14 +08:00
为什么用 GBK 不用 UTF ?
ctro15547
2018-11-03 21:35:44 +08:00
字符处理 py2 的话都转成 utf-8 再试比较好
337136897
2018-11-03 21:42:29 +08:00
@princelai 因为我听百度说 utf 输入中文会报错,所以没有尝试就用了 gbk
dbw9580
2018-11-03 21:47:04 +08:00
百度害人
0ZXYDDu796nVCFxq
2018-11-03 21:54:26 +08:00
False 和 false
0ZXYDDu796nVCFxq
2018-11-03 21:57:39 +08:00
@di94sh #8
以后还得分简体中文编程,繁体中文编程
zxcvsh
2018-11-04 08:11:54 +08:00
@337136897 看来你真的只是听说,好多基础教程开头就是 :
#!/usr/bin/python
# -*- coding: UTF-8 -*-
337136897
2018-11-05 09:29:32 +08:00
@zxcvsh 不好意思,我还真没学过
locoz
2018-11-08 13:12:21 +08:00
@gstqc #15 哈哈哈哈哈哈哈哈哈哈真实

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/504160

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX