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)
。。。
你那个输出的实在是脑回路清奇
这是赋值,不是拼接。。。
再说了,你在循环里直接输出不就好了? 本帖最后由 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)
最后,建议使用代码格式发代码,方法在内容输入框上方有个<>,点一下弹出输入框,把代码复制进去点确定就可以了。 Hoiste 发表于 2020-3-22 11:45
首先for循环里面的if,string这么长的一段字符串不可能全是大写,所以string.isupper()总是返回False,你要 ...
我那个==应该是有必要的吧,万一右边的第四个字母还是大写,那中间那个小写字母就不是密码了,0是FALSE,我是想确保那个字母不是大写 猪猪虾 发表于 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:08 编辑
猪猪虾 发表于 2020-3-22 12:00
#请用已学过的知识编写程序,找出小甲鱼藏在下边这个长字符串中的密码,密码的埋藏点符合以下规律:
#a) ...
string.islower()是闹哪样?你要整个字符串都是小写吗?string.islower()!!!,然后,你不想第四位是大写你就判断islower()就行啦,我判断代码不是给了吗。。。。而且你前面第四位都还没判断呢
看了一下,非代码界面打中括号会被隐藏,所以会看不到我打的一些东西,用代码说一下string.islower()应该是string.islower()这体现了用代码格式发代码的重要性了。 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:07
#请用已学过的知识编写程序,找出小甲鱼藏在下边这个长字符串中的密码,密码的埋藏点符合以下规律:
#a) ...
我的代码里面不是string.islower,复制粘贴后成那样的
shi
本帖最后由 Hoiste 于 2020-3-22 12:10 编辑猪猪虾 发表于 2020-3-22 12:07
#请用已学过的知识编写程序,找出小甲鱼藏在下边这个长字符串中的密码,密码的埋藏点符合以下规律:
#a) ...
我编辑了上面那个回复,你用代码格式发一下,还有,别纠结那个==0表达False,用islower表达小写判断不会让代码出现一些莫名其妙的逻辑 猪猪虾 发表于 2020-3-22 12:08
我的代码里面不是string.islower,复制粘贴后成那样的
直接给你看我的吧。。。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
#请用已学过的知识编写程序,找出小甲鱼藏在下边这个长字符串中的密码,密码的埋藏点符合以下规律:
#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:11
好,我重新发了一遍 先给你看看我的吧,密码体我就不弄了。
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
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:20
还是不对啊,只输出一个字符了 Hoiste 发表于 2020-3-22 12:04
string.islower()是闹哪样?你要整个字符串都是小写吗?string.islower()!!!,然后,你不想第四位是大 ...
不是非代码界面不能输入中括号。是因为html语言中是斜体标记。当遇到后就会把之后的都改为斜体。
html语言中斜体标记:
若是中括号内有其他内容则不会出现这种情况。 sunrise085 发表于 2020-3-22 12:34
哦哦,懂了 本帖最后由 Hoiste 于 2020-3-22 13:45 编辑
猪猪虾 发表于 2020-3-22 12:24
还是不对啊,只输出一个字符了
刚刚回复太多被审核了,你的代码不要那句else和break,需要全部字符都扫一遍,要不然一下判断不是密码然后就退出循环了,我试过你的代码了,去掉就成功了。
页:
[1]