为什么输出的是个空列表?
#5作业题,找密码,条件:密码是小写字母,且其左右两侧都有且只有三个大写字母str1='ACFaCTLbIQlcAIVgMTqHFKkSWAswqbDDHtpgcWaXSSglUYKE'
length=len(str1)
password=[]
ps=[]
#找出小写字母的序号
for i in range(length):
if str1.islower:
ps.append(i)
#根据小写字母下表前后差值是否为3,确定密码序号,然后把密码找出来
length1=len(ps)
for each in range(1,length1-1):
if ps-ps==3 and ps-ps==3:
password.append(str1(ps))
print(password)
#根据小写字母下表前后差值是否为3,确定密码序号,然后把密码找出来
你这个条件就已经错了,小甲鱼的题意是上一个小写字母到本身的小写字母之间 和 到后一个小写有且仅有 3 个大写字母 Twilight6 发表于 2020-6-1 22:50
你这个条件就已经错了,小甲鱼的题意是上一个小写字母到本身的小写字母之间 和 到后一个小写有且仅有 3...
我觉得没错呀,小写字母找出来后,其余均为大写字母。只要小写字母与前后两个小写字母序号相差为3,可以确定这个小写字母是密码, liuzg123 发表于 2020-6-1 23:24
我觉得没错呀,小写字母找出来后,其余均为大写字母。只要小写字母与前后两个小写字母序号相差为3,可以 ...
ps 列表内容:
而你字符串 :
str1='ACFaCTLbIQlcAIVgMTqHFKkSWAswqbDDHtpgcWaXSSglUYKE'
你看下 b 的位置参数减去 a 的位置参数值是多少 liuzg123 发表于 2020-6-1 23:24
我觉得没错呀,小写字母找出来后,其余均为大写字母。只要小写字母与前后两个小写字母序号相差为3,可以 ...
而且 你代码的 islower 函数 忘记加括号了正确代码:if str1.islower(): str1='ACFaCTLbIQlcAIVgMTqHFKkSWAswqbDDHtpgcWaXSSglUYKE'
length=len(str1)
password=[]
ps=[]
#找出小写字母的序号
for i in range(length):
if str1.islower():
ps.append(i)
#根据小写字母下表前后差值是否为3,确定密码序号,然后把密码找出来
length1=len(ps)
for each in range(1,length1-1):
if ps-ps==3 and ps-ps==3:
password.append(str1(ps))
print(password) 我觉得是你的题目意思理解错了。条件1 密码是小写字母, 条件2小写字母的前面3位和后3位 必须都是大写字母, 两个条件都成立 这个小写字母才是密码 否则这个小写字母不是密码。
bujust_h 发表于 2020-6-2 09:30
我觉得是你的题目意思理解错了。条件1 密码是小写字母, 条件2小写字母的前面3位和后3位 必须都是 ...
条件2 更新,小写字母的 有且仅有前3位和后三位是大写字母 (多了或者少了都不行) bujust_h 发表于 2020-6-2 09:42
条件2 更新,小写字母的 有且仅有前3位和后三位是大写字母 (多了或者少了都不行)
不知道我这是否能符合题目意思。。
str1='ACFaCTLbIQlcAIVgMTqHFKkSWAswqbDDHtpgcWaXSSglUYKE'
n = len(str1)
small = []
pw = []
for i in range(n):
if str1.islower():
small.append(str1)
if str1.isupper():
if str1.isupper():
pw.append(str1)
else:
continue
print(pw)
print(small) 因为密码可以是连续的几个小写字母,左右两侧各只有三个大写字母 Twilight6 发表于 2020-6-1 23:41
ps 列表内容:
而你字符串 :
应当是4,而不是3,修改后,找出来k,但找不出来a,事实上a是密码,但a前面没有小写字母位,所以我只能把第一个字母拿出来独立判断。
liuzg123 发表于 2020-6-2 12:43
应当是4,而不是3,修改后,找出来k,但找不出来a,事实上a是密码,但a前面没有小写字母位,所以我只能把第 ...
修改后代码#5作业题,找密码,条件:密码是小写字母,且其左右两侧都有且只有三个大写字母
str1='ACFaCTLbIQlcAIVgMTqHFKkSWAswqbDDHtpgcWaXSSglUYKE'
length=len(str1)
password=[]
ps=[]
#找出小写字母的序号
for i in range(length):
if str1.islower():
ps.append(i)
#根据小写字母下表前后差值是否为3,确定密码序号,然后把密码找出来
length1=len(ps)
for each in range(1,length1-1):
if ps-ps==4 and ps-ps==4:
password.append(str1])
if ps==3 and ps==7:
password.insert(0,str1)
print(ps)
print(password)
284665 发表于 2020-6-2 10:12
因为密码可以是连续的几个小写字母,左右两侧各只有三个大写字母
连续不是问题,前后想减是0 bujust_h 发表于 2020-6-2 09:58
不知道我这是否能符合题目意思。。
str1='ACFaCTLbIQlcAIVgMTqHFKkSWAswqbDDHtpgcWaXSSglUYKE'
测试过,返回都是空列表
Twilight6 发表于 2020-6-1 23:42
而且 你代码的 islower 函数 忘记加括号了正确代码:
我刚开始学,()[]始终困扰着我,希望老师指导 liuzg123 发表于 2020-6-2 12:43
应当是4,而不是3,修改后,找出来k,但找不出来a,事实上a是密码,但a前面没有小写字母位,所以我只能把第 ...
嗯嗯 liuzg123 发表于 2020-6-2 12:52
测试过,返回都是空列表
我返回是【a,g 】 只有2个字母满足要求 bujust_h 发表于 2020-6-2 13:18
我返回是【a,g 】 只有2个字母满足要求
我返回的也是a,g.原始字符串我改了。所以只有两个字母.
页:
[1]