鱼C论坛

 找回密码
 立即注册
查看: 1976|回复: 19

[已解决]一道简单的题目

[复制链接]
发表于 2017-7-28 20:15:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
要找出这一串字符串里面符合下面要求的字母:
'HHYiBUNkHFSFHUHSUiiijHHTtJJJ'
1.小写字母
2.前3个字母和后3个字母都是大写

我打了这么一段代码,
  1. f = 'HHYiBUNkHFSFHUHSUiiijHHTtJJJ'
  2. for i in f:
  3.     p = f.index(i)
  4.     if i.islower() and (f[p - 3 : p] + f[p + 1 : p + 4]).isupper():
  5.         print(i)
复制代码

期待得到的结果是:
i
k
t

可是为啥结果是这个呢
问题出在哪儿了
最佳答案
2017-7-28 20:38:39
index的方法是返回第一个匹配的位置哟
屏幕快照 2017-07-28 下午9.12.08.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-7-28 20:38:39 | 显示全部楼层    本楼为最佳答案   
index的方法是返回第一个匹配的位置哟
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-28 20:45:58 | 显示全部楼层
本帖最后由 yongxi 于 2017-7-29 00:56 编辑

楼上正解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-28 20:48:04 | 显示全部楼层

find(sub[, start[, end]])检测 sub 是否包含在字符串中,如果有则返回索引值,否则返回 -1,start 和 end 参数表示范围,可选。
index(sub[, start[, end]])跟 find 方法一样,不过如果 sub 不在 string 中会产生一个异常。

  1. f = 'HHYiBUNkHFSFHUHSUiiijHHTtJJJ'
  2. p = 0;
  3. for i in f:   
  4.     if i.islower() and (f[p - 3 : p] + f[p + 1 : p + 4]).isupper():
  5.         print(i)
  6.     p += 1
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-29 11:39:01 | 显示全部楼层
二楼正解,当你程序循环第二个i时, index()返回第一个  i   的 下标
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-29 14:27:30 | 显示全部楼层
Castieler 发表于 2017-7-29 11:39
二楼正解,当你程序循环第二个i时, index()返回第一个  i   的 下标

那请问有什么办法当程序循环第二个i时,返回第二个i的下标呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-29 14:29:57 | 显示全部楼层
小锟 发表于 2017-7-28 20:38
index的方法是返回第一个匹配的位置哟

那请问有什么办法当程序循环第二个i时,返回第二个i的下标呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-29 15:20:27 | 显示全部楼层
ba21 发表于 2017-7-28 20:48
find(sub[, start[, end]])检测 sub 是否包含在字符串中,如果有则返回索引值,否则返回 -1,start 和 en ...

谢谢亲的回答,不过俺的问题不是这个呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-29 15:28:50 | 显示全部楼层
装辣椒 发表于 2017-7-29 15:20
谢谢亲的回答,不过俺的问题不是这个呀

index 方法说明都给你了,还理解不了。怕你理解不了,代码也给你上了。哎,尽然还说问的不是这个。
难道我上的代码也不对哟
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-29 15:33:27 | 显示全部楼层
ba21 发表于 2017-7-29 15:28
index 方法说明都给你了,还理解不了。怕你理解不了,代码也给你上了。哎,尽然还说问的不是这个。
难 ...

俺的问题主要是
当程序循环第二个i时, index()只会返回第一个  i   的 下标
这个之前不知道啦
sorry啦,你的回答很详细啦
亲亲不要伤心
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-29 15:38:36 | 显示全部楼层
装辣椒 发表于 2017-7-29 15:33
俺的问题主要是
当程序循环第二个i时, index()只会返回第一个  i   的 下标
这个之前不知道啦

所以我给了你index方法的说明。 和上了代码
不要说第二个循环,你就是第10个循环它也只返回第一个i的下标。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-29 15:42:51 | 显示全部楼层
ba21 发表于 2017-7-29 15:38
所以我给了你index方法的说明。 和上了代码
不要说第二个循环,你就是第10个循环它也只返回第一个i的下 ...

嗯嗯,是啊,
想请教下,有啥办法可以让他返回 当前字符的位置呢,不管之前出现过还是没出现过
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-29 15:50:21 | 显示全部楼层
装辣椒 发表于 2017-7-29 15:42
嗯嗯,是啊,
想请教下,有啥办法可以让他返回 当前字符的位置呢,不管之前出现过还是没出现 ...

我只想说,我的答案你没有看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-29 20:36:50 | 显示全部楼层
ba21的方法是可以的
另一个方法是

  1. for i,j in enumerate('1234'):
  2.         print('我是索引:',i,'我是元素:',j)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-29 21:03:41 | 显示全部楼层
ba21 发表于 2017-7-29 15:50
我只想说,我的答案你没有看

木有仔细看,非常抱歉!!!结果还以为你没理解我的问题

非常非常抱歉!!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-29 21:21:58 | 显示全部楼层
小锟 发表于 2017-7-29 20:36
ba21的方法是可以的
另一个方法是

这方法也不错,
i就是j元素的位置哇
谢谢谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-31 17:07:30 | 显示全部楼层
本帖最后由 Castieler 于 2017-8-7 19:22 编辑
装辣椒 发表于 2017-7-29 14:27
那请问有什么办法当程序循环第二个i时,返回第二个i的下标呢

直接用下标遍历,昨天出去玩,忘看回复了,这样写就可以
  1. f = 'HHYiBUNkHFSFHUHSUiiijHHTtJJJ'
  2. for i in range(len(f)):
  3.     if f[i].islower() and (f[i - 3 : i] + f[i + 1 : i + 4]).isupper():
  4.         print(f[i])
复制代码

   

妈的。我发的代码跟显示的不一样,显示的错的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-6 15:10:27 | 显示全部楼层
Castieler 发表于 2017-7-31 17:07
直接用下标遍历,昨天出去玩,忘看回复了,这样写就可以
f = 'HHYiBUNkHFSFHUHSUiiijHHTtJJJ'
for i in ...

谢谢回复!!!

摔伤了五天没上鱼c了,sorry!!
不过这个方法好象出不来结果吧,第三行f一直是整个字符串哇
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-7 18:40:32 | 显示全部楼层
本帖最后由 Castieler 于 2017-8-7 19:23 编辑
装辣椒 发表于 2017-8-6 15:10
谢谢回复!!!

摔伤了五天没上鱼c了,sorry!!


我发代码没有用代码格式,代码就显示错了,抱歉,现在改好了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-10 15:33:27 | 显示全部楼层
Castieler 发表于 2017-8-7 18:40
我发代码没有用代码格式,代码就显示错了,抱歉,现在改好了

谢谢谢谢!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-28 20:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表