猪猪虾 发表于 2020-3-22 11:23:56

20讲,结果不显示

本帖最后由 猪猪虾 于 2020-3-22 12:26 编辑

         
         #请用已学过的知识编写程序,找出小甲鱼藏在下边这个长字符串中的密码,密码的埋藏点符合以下规律:
#a) 每位密码为单个小写字母
#b) 每位密码的左右两边均有且只有三个大写字母
import sys
f=open(r"C:\Users\Administrator\Desktop\python\string2.txt","r")
string=f.read()
string = string.replace('\n','').replace('\r','')
code=[]
for i in range(3,len(string)-4):
      # 最后一个条件是确保左边第4个字母不再是大写字母
      if string.isupper() andstring .islower() and string.isupper() and string.islower():
            code.append(string)
      else:
            break

string1=''.join(code)   #列表转换成字符串
print(string1)
   

qiuyouzhi 发表于 2020-3-22 11:33:58

。。。
你那个输出的实在是脑回路清奇
这是赋值,不是拼接。。。
再说了,你在循环里直接输出不就好了?

Hoiste 发表于 2020-3-22 11:45:49

本帖最后由 Hoiste 于 2020-3-22 11:47 编辑

首先for循环里面的if,string这么长的一段字符串不可能全是大写,所以string.isupper()总是返回False,你要表达的应该是string.isupper()吧?
然后你用第二个for循环套if循环这一段多余了,只需要有一个i的位置,我们就可以查找i的前三位,后三位,以及前第四位,后第四位的大小写,还有那个==0是什么鬼。。。
改成if each.islower() and string.isupper() and string.isupper():
      if string.islower() and string.islower():
第三,因为里面带有换行符和回车,在Python里面有可能把这当成一个大写字符,你需要用replace方法把\n和\r换成空字符,
string = string.replace('\n','').replace('\r','')
最后,你使用的列表换成字符串输出的办法会让你失望,建议使用下面语句:
string1 = ''.join(code)
最后,建议使用代码格式发代码,方法在内容输入框上方有个<>,点一下弹出输入框,把代码复制进去点确定就可以了。

猪猪虾 发表于 2020-3-22 11:59:09

Hoiste 发表于 2020-3-22 11:45
首先for循环里面的if,string这么长的一段字符串不可能全是大写,所以string.isupper()总是返回False,你要 ...

我那个==应该是有必要的吧,万一右边的第四个字母还是大写,那中间那个小写字母就不是密码了,0是FALSE,我是想确保那个字母不是大写

猪猪虾 发表于 2020-3-22 12:00:00

猪猪虾 发表于 2020-3-22 11:59
我那个==应该是有必要的吧,万一右边的第四个字母还是大写,那中间那个小写字母就不是密码了,0是FALSE, ...

#请用已学过的知识编写程序,找出小甲鱼藏在下边这个长字符串中的密码,密码的埋藏点符合以下规律:
#a) 每位密码为单个小写字母
#b) 每位密码的左右两边均有且只有三个大写字母
import sys
f=open(r"C:\Users\Administrator\Desktop\python\string2.txt","r")
string=f.read()
string = string.replace('\n','').replace('\r','')
code=[]
for i in range(3,len(string)-3):
            # 最后一个条件是确保左边3个大写字母之后的不再是大写字母
      if string.isupper() andstring.islower() and string.isupper() and string.isupper()==0:
            code.append(string)
      else:
            break

string1=''.join(code)   #列表转换成字符串
print(string1)

#现在啥也没有了{:5_94:}
         
      

Hoiste 发表于 2020-3-22 12:04:34

本帖最后由 Hoiste 于 2020-3-22 12:08 编辑

猪猪虾 发表于 2020-3-22 12:00
#请用已学过的知识编写程序,找出小甲鱼藏在下边这个长字符串中的密码,密码的埋藏点符合以下规律:
#a) ...

string.islower()是闹哪样?你要整个字符串都是小写吗?string.islower()!!!,然后,你不想第四位是大写你就判断islower()就行啦,我判断代码不是给了吗。。。。而且你前面第四位都还没判断呢

看了一下,非代码界面打中括号会被隐藏,所以会看不到我打的一些东西,用代码说一下string.islower()应该是string.islower()这体现了用代码格式发代码的重要性了。

猪猪虾 发表于 2020-3-22 12:07:53

Hoiste 发表于 2020-3-22 12:04
string.islower()是闹哪样?你要整个字符串都是小写吗?string.islower()!!!,然后,你不想第四位是大 ...

#请用已学过的知识编写程序,找出小甲鱼藏在下边这个长字符串中的密码,密码的埋藏点符合以下规律:
#a) 每位密码为单个小写字母
#b) 每位密码的左右两边均有且只有三个大写字母
import sys
f=open(r"C:\Users\Administrator\Desktop\python\string2.txt","r")
string=f.read()
string = string.replace('\n','').replace('\r','')
code=[]
for i in range(3,len(string)-4):
      # 最后一个条件是确保左边第4个字母不再是大写字母
      if string.isupper() andstring.islower() and string.isupper() and string.islower()==0:
            code.append(string)
      else:
            break

string1=''.join(code)   #列表转换成字符串
print(string1)
   
         
#我改了,但是。。

猪猪虾 发表于 2020-3-22 12:08:58

猪猪虾 发表于 2020-3-22 12:07
#请用已学过的知识编写程序,找出小甲鱼藏在下边这个长字符串中的密码,密码的埋藏点符合以下规律:
#a) ...

我的代码里面不是string.islower,复制粘贴后成那样的

Hoiste 发表于 2020-3-22 12:09:32

shi

本帖最后由 Hoiste 于 2020-3-22 12:10 编辑

猪猪虾 发表于 2020-3-22 12:07
#请用已学过的知识编写程序,找出小甲鱼藏在下边这个长字符串中的密码,密码的埋藏点符合以下规律:
#a) ...

我编辑了上面那个回复,你用代码格式发一下,还有,别纠结那个==0表达False,用islower表达小写判断不会让代码出现一些莫名其妙的逻辑

猪猪虾 发表于 2020-3-22 12:11:03

猪猪虾 发表于 2020-3-22 12:08
我的代码里面不是string.islower,复制粘贴后成那样的

Hoiste 发表于 2020-3-22 12:13:14

直接给你看我的吧。。。string = string.replace('\n','').replace('\r','')

i = 3

for each in string:
    if each.islower() and string.isupper() and string.isupper():
      if string.islower() and string.islower():
            print(each,end = '')
    i += 1

猪猪虾 发表于 2020-3-22 12:13:27

#请用已学过的知识编写程序,找出小甲鱼藏在下边这个长字符串中的密码,密码的埋藏点符合以下规律:
#a) 每位密码为单个小写字母
#b) 每位密码的左右两边均有且只有三个大写字母
import sys
f=open(r"C:\Users\Administrator\Desktop\python\string2.txt","r")
string=f.read()
string = string.replace('\n','').replace('\r','')
code=[]
for i in range(3,len(string)-4):
      # 最后一个条件是确保左边第4个字母不再是大写字母
      if string.isupper() andstring .islower() and string.isupper() and string.islower():
            code.append(string)
      else:
            break

string1=''.join(code)   #列表转换成字符串
print(string1)
   
         
         

猪猪虾 发表于 2020-3-22 12:14:35

猪猪虾 发表于 2020-3-22 12:11


好,我重新发了一遍

Hoiste 发表于 2020-3-22 12:16:54

先给你看看我的吧,密码体我就不弄了。
string = string.replace('\n','').replace('\r','')

i = 3

for each in string:
    if each.islower() and string.isupper() and string.isupper():
      if string.islower() and string.islower():
            print(each,end = '')
    i += 1

猪猪虾 发表于 2020-3-22 12:20:58

Hoiste 发表于 2020-3-22 12:04
string.islower()是闹哪样?你要整个字符串都是小写吗?string.islower()!!!,然后,你不想第四位是大 ...

#请用已学过的知识编写程序,找出小甲鱼藏在下边这个长字符串中的密码,密码的埋藏点符合以下规律:
#a) 每位密码为单个小写字母
#b) 每位密码的左右两边均有且只有三个大写字母
import sys
f=open(r"C:\Users\Administrator\Desktop\python\string2.txt","r")
string=f.read()
string = string.replace('\n','').replace('\r','')
code=[]
for i in range(3,len(string)-4):
      # 最后一个条件是确保左边第4个字母不再是大写字母
      if string.isupper() andstring.islower() and string.isupper() and string.islower():
            code.append(string)
      else:
            break

string1=''.join(code)   #列表转换成字符串
print(string1)
   
         
         

猪猪虾 发表于 2020-3-22 12:24:23

猪猪虾 发表于 2020-3-22 12:20


还是不对啊,只输出一个字符了

sunrise085 发表于 2020-3-22 12:34:17

Hoiste 发表于 2020-3-22 12:04
string.islower()是闹哪样?你要整个字符串都是小写吗?string.islower()!!!,然后,你不想第四位是大 ...

不是非代码界面不能输入中括号。是因为html语言中是斜体标记。当遇到后就会把之后的都改为斜体。
html语言中斜体标记:   
若是中括号内有其他内容则不会出现这种情况。

Hoiste 发表于 2020-3-22 12:47:08

sunrise085 发表于 2020-3-22 12:34


哦哦,懂了

Hoiste 发表于 2020-3-22 13:44:36

本帖最后由 Hoiste 于 2020-3-22 13:45 编辑

猪猪虾 发表于 2020-3-22 12:24
还是不对啊,只输出一个字符了

刚刚回复太多被审核了,你的代码不要那句else和break,需要全部字符都扫一遍,要不然一下判断不是密码然后就退出循环了,我试过你的代码了,去掉就成功了。
页: [1]
查看完整版本: 20讲,结果不显示