一文先生 发表于 2020-5-16 17:59:26

第20讲动动手1,有个小问题

本帖最后由 一文先生 于 2020-5-16 19:54 编辑


str1 = '''复制进来的参数'''
if (str1.islower()) and (str1.isupper()) and (str1.isupper()) and (not str1.isupper()) and ('\n' not in str1+str1):
    print(str1,end = ' ')
else:
   
    for i in range(4,len(str1)-5):
      if ((str1.islower()) and (str1.isupper()) and (str1.isupper()) and (not str1.isupper()) and
            (str1!='\n') and (str1!= '\n') and (not str1.isupper()) and ('\n' not in str1+str1)):
            print(str1,end= ' ')
      else:
            continue
上面我的代码运行的最终结果是正确的。 问题在这里!:最后那个条件('\n' not in str1+str1)如果我拆分成('\n' not in str1) and ('\n'not in str1) 那么结果会不一样,这是为什么呢?!不是应该一个意思吗?求助各位老师 谢谢

wuqramy 发表于 2020-5-16 18:02:14

它应该是要到str1+str1这个组合里面
去找\n

永恒的蓝色梦想 发表于 2020-5-16 18:02:42

上面我的代码运行的最终结果是正确的。你是想让他结果不正确吗?

wuqramy 发表于 2020-5-16 18:03:35

永恒的蓝色梦想 发表于 2020-5-16 18:02
你是想让他结果不正确吗?

看他的代码
里面有一个问题

一文先生 发表于 2020-5-16 18:05:15

永恒的蓝色梦想 发表于 2020-5-16 18:02
你是想让他结果不正确吗?

我前面写成('\n' not in str1) and ('\n'not in str1),发现答案不对,才改为('\n' not in str1+str1)的 但不知道为什么

一文先生 发表于 2020-5-16 18:06:08

wuqramy 发表于 2020-5-16 18:02
它应该是要到str1+str1这个组合里面
去找\n

那请问跟('\n' not in str1) and ('\n'not in str1)有何区别呢

wuqramy 发表于 2020-5-16 18:09:24

一文先生 发表于 2020-5-16 18:06
那请问跟('\n' not in str1) and ('\n'not in str1)有何区别呢

str1+str1是这个组合里面只要有\n就返回True
('\n' not in str1) and ('\n'not in str1)是要在这两个地方有\n才是True

一文先生 发表于 2020-5-16 18:14:26

wuqramy 发表于 2020-5-16 18:09
str1+str1是这个组合里面只要有\n就返回True
('\n' not in str1) and ('\n'not in str1)是要在这两个 ...

可是我的目的就是要在str1和 str1这两个地方都不能有\n呀

wuqramy 发表于 2020-5-16 18:24:07

一文先生 发表于 2020-5-16 18:14
可是我的目的就是要在str1和 str1这两个地方都不能有\n呀

那就要用你的第二种写法

一文先生 发表于 2020-5-16 18:34:50

wuqramy 发表于 2020-5-16 18:24
那就要用你的第二种写法

举个例子:假如字符串:AA\naBB\n我想达到:\n不能在AA\n和BB\n这两个地方(任意一个地方存在\n都不行),那么我把代码写成:('\n' not in str1+str1)和跟写成:('\n' not in str1) and ('\n'not in str1)有何区别呢?结果却是有差别的。

Twilight6 发表于 2020-5-16 18:58:30

这代码看的难受....

一文先生 发表于 2020-5-16 19:03:52

额……刚自己又试验了一遍。。发现,这两种写法都是正确的。。。可能在第一次编的时候改了一点地方才导致结果不对吧。超不好意思,那我的问题已解决了,打扰大家了

一文先生 发表于 2020-5-16 19:12:33

Twilight6 发表于 2020-5-16 18:58
这代码看的难受....

str = '''复制进来的参数'''
if (str1.islower()) and (str1.isupper()) and (str1.isupper()) and (not str1.isupper()) and ('\n' not in str1+str1):
    print(str1,end = ' ')
else:
   
    for i in range(4,len(str1)-5):
      if ((str1.islower()) and (str1.isupper()) and (str1.isupper()) and (not str1.isupper()) and
            (not str1.isupper()) and ('\n' not in str1+str1)):
            print(str1,end= ' ')
      else:
            continue
改善了一下{:5_109:}

Twilight6 发表于 2020-5-16 19:25:12

一文先生 发表于 2020-5-16 19:12
改善了一下

如果自己解决了问题,就把帖子重新编辑为已解决,或者给上面几楼设置最佳毕竟是幸苦来帮你解决问题的
页: [1]
查看完整版本: 第20讲动动手1,有个小问题