- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我试图将一个字母在索引范围内向下移动,例如当你将其移动“3”时,“a”变成“d”,但现在我想做一个完整的单词,这样每个字母都会同时向下移动时间,这是我到目前为止所拥有的:
Alphabet=['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
W=input("Enter Word: ")
S=int(input("Please choose a number between -51 and 51: "))
I=(Alphabet.index(W))
J=I+S
if J>25:
print("Please choose a number that is between -51 and 51")
else:
print("Your code word is: ",Alphabet[J])
输出是:
Enter Word: today
Please choose a number between -51 and 51: 3
Traceback (most recent call last):
File"C:/Users/Owner/OneDrive/Documents/Python/Word Shift.py", line 4, in <module>
I=(Alphabet.index(W))
ValueError: 'today; is not in list
仅供引用,我实际上是Python的初学者,所以我不知道很多“东西”,如果不是太麻烦,你能告诉我我哪里出错了以及你的编码解决方案的每个部分是什么是吗?
最佳答案
如果 element
不在 some_list
中,
some_list.index(element)
会引发 ValueError
。除非输入的单词是一个字符,否则 Alphabet.index(W)
将会抛出此错误,因为 Alphabet
只是单个字符的列表。
您需要创建一个空列表,循环遍历 W
中的字符,使用 Alphabet.index
转换每个字符并将其追加到列表中。循环结束后,您可以使用 ''.join(some_list)
习惯用法将整个列表连接成一个字符串。
new_word_list = []
for char in W:
I = Alphabet.index(char)
new_word_list.append(Alphabet[I+S])
new_word = ''.join(new_word_list)
您的代码也将不起作用,因为您的 Alphabet
列表只有 26 个元素长,但用户可以输入一个使索引高于 26 的数字。例如,如果有人选择数字 1 和 'z' 是字符之一,您的代码将抛出索引错误,因为 Alphabet.index('z')
是 26,并且不存在第 27 个索引这样的东西。
最简单的解决方案(尽管效率不高)是在定义 Alphabet
时执行此操作:
Alphabet=['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']*3
这意味着您的字母表列表将有 78 个元素长。
一旦您对 Python 更加熟悉,您可能需要查看内置函数,例如 chr
、ord
以及 的内容strings
模块,它将简化您尝试做的一些事情。
关于python - 将整个单词下移索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27838813/
如果我只知道一个 id,有没有办法在一个查询中向上/向下移动列表项 像这样的 update tbl SET list_order = CASE WHEN id = 10
我有两个并排的表格 View ,当我在两个表格中的任何一个上滚动时,我使用下面的代码使它们像一个表格一样滚动。 func scrollViewDidScroll(_ scrollView: UIScr
我知道这看起来应该很简单,但由于某种原因,我无法理解解决这个问题的算法,所以我将就这个问题与社区联系。 我有一个如下所示的类: class MapElementModel { int id;
我目前正在使用 Visual Studio 使用 C# 编写应用程序。因此,VS2010 创建了一个解决方案目录,其中包含我的项目目录。所以我的层次结构是这样的: Solution .git
我正在制作一个应用程序,在显示键盘时向上移动 View (当 iPhone 4s/5/5c/5s 时)。但是,当我使用数字 pa 键入内容时,它会触发 View 返回。 textField:shoul
我正在处理以前开发人员的遗留代码,他们使用的是 highcharts.js (v3.0.1)。 xAxis 落在图中 ( screenshot ),我无法弄清楚这是为什么。我试图在 jsfiddle
当显示标签栏时,我想向下移动我的 View Controller 内容(即整个 View )。有什么办法可以自动完成吗?还是必须以编程方式完成? 最佳答案 解决方案很简单。只需取消选中 Interfa
我最近升级到 Xcode 9-beta 和 iOS 11。当我升级到我的项目并插入播放时,我的所有 View 都被状态栏向下推了大约 20 像素,而不是状态栏直接在我的顶部看法。我有 iOS 10 的
当我使用 调用 AdMob 广告时遇到此问题 [rootController.view addSubview:adMobAd]; //setup the ad 从点击的广告返回后,AdMob 框架会向
我目前正在创建一个应用程序,它在一个 View 中包含一个 pickerView 和一个 tapbar。 View 位于屏幕底部。 tapbar 总是可见的。如果我点击 tapbar 上的按钮, Vi
我是一名优秀的程序员,十分优秀!