我有一个工作计划:
取一个短语并用1-26之间的随机数字进行编码 允许用户选择3个字母,以及计算机分配的编号 但我想做的是让用户能够猜出一个字母,以及他们认为正确的字母是什么,如果他们的猜测是正确的,允许他们继续,但如果是错误的,那么就这样说,让他们再试一次。最终允许他们猜出整个短语
希望这是有道理的:)
代码如下:
import string, random
import pandas as pd
#User Input
title = input("Please Enter A Title For This Puzzle: ")
if len(title) == 0:
print("String is empty")
quit()
phrase = input("Please Enter A Phrase To Be Encoded: ")
if len(phrase) == 0:
print("String is empty")
quit()
if not phrase.islower():
print("Please use lowercase for the phrase")
quit()
#Numbers get assigned to the letters
nums = random.sample(range(1, 27), 26)
code = dict(zip(nums, string.ascii_lowercase))
print( )
#Giveaway letters
num1 = int(input("Enter the first giveaway letter you would like (Note:a=0, b=1 ect): "))
num2 = int(input("Enter the second giveaway letter you would like (Note:a=0, b=1 ect): "))
#Code for Grid
code2 = {'Number': [[nums[num1]],[nums[num2]]],
'Letter': (string.ascii_lowercase[num1],string.ascii_lowercase[num2]),
}
#'Start' of Puzzle for the user
print ( )
print ("The Title Of This Puzzle Is", title)
print( )
df = pd.DataFrame(code2, columns = ['Number', 'Letter'])
code = dict(zip(string.ascii_lowercase, nums))
code.update({" ":100})
encoded = [code[item] for item in phrase]
print (df)
print( )
print ("Hint: 100 is always a space")
print (encoded)
注意:我以前问过这个问题,但是在这种特殊情况下,提供的链接没有那么大帮助。如能提供示例或少量代码片段,将不胜感激
我一直在尝试我自己,但它看起来像一团乱,无法与此程序。不管这里是什么:
def make_a_guess():
print("A is " + str(a))
print("Make a guess...")
Article_Guess = input("What letter: ").lower()
Numerical_Guess = int(input("What number: "))
if Article_Guess == 'a' and Numerical_Guess == a:
print_letters()
print("Correct, A: " + str(a))
elif Article_Guess == 'b' and Numerical_Guess == b:
print_letters()
print("Correct, B: " + str(b))
elif Article_Guess == 'C' and Numerical_Guess == c:
print_letters()
print("Correct, C: " + str(c))
elif Article_Guess == 'D' and Numerical_Guess == d:
print_letters()
print("Correct, D: " + str(d))
elif Article_Guess == 'E' and Numerical_Guess == e:
print_letters()
print("Correct, E: " + str(e))
elif Article_Guess == 'F' and Numerical_Guess == f:
print_letters()
print("Correct, F: " + str(f))
elif Article_Guess == 'G' and Numerical_Guess == g:
print_letters()
print("Correct, G: " + str(g))
elif Article_Guess == 'H' and Numerical_Guess == h:
print_letters()
print("Correct, H: " + str(h))
elif Article_Guess == 'I' and Numerical_Guess == i:
print_letters()
print("Correct, I: " + str(i))
elif Article_Guess == 'J' and Numerical_Guess == j:
print_letters()
print("Correct, J: " + str(j))
elif Article_Guess == 'K' and Numerical_Guess == k:
print_letters()
print("Correct, K: " + str(k))
elif Article_Guess == 'L' and Numerical_Guess == l:
print_letters()
print("Correct, L: " + str(l))
elif Article_Guess == 'M' and Numerical_Guess == m:
print_letters()
print("Correct, M: " + str(m))
elif Article_Guess == 'N' and Numerical_Guess == n:
print_letters()
print("Correct, N: " + str(n))
elif Article_Guess == 'O' and Numerical_Guess == o:
print_letters()
print("Correct, O: " + str(o))
elif Article_Guess == 'P' and Numerical_Guess == p:
print_letters()
print("Correct, P: " + str(p))
elif Article_Guess == 'Q' and Numerical_Guess == q:
print_letters()
print("Correct, Q: " + str(q))
elif Article_Guess == 'R' and Numerical_Guess == r:
print_letters()
print("Correct, R: " + str(r))
elif Article_Guess == 'S' and Numerical_Guess == s:
print_letters()
print("Correct, S: " + str(s))
elif Article_Guess == 'T' and Numerical_Guess == t:
print_letters()
print("Correct, T: " + str(t))
elif Article_Guess == 'U' and Numerical_Guess == u:
print_letters()
print("Correct, U: " + str(u))
elif Article_Guess == 'V' and Numerical_Guess == v:
print_letters()
print("Correct, V: " + str(v))
elif Article_Guess == 'W' and Numerical_Guess == w:
print_letters()
print("Correct, W: " + str(w))
elif Article_Guess == 'X' and Numerical_Guess == x:
print_letters()
print("Correct, X: " + str(x))
elif Article_Guess == 'Y' and Numerical_Guess == y:
print_letters()
print("Correct, Y: " + str(y))
elif Article_Guess == 'Z' and Numerical_Guess == z:
print_letters()
print("Correct, Z: " + str(z))
我以前没有使用过熊猫数据帧。我相信您也可以使用这些,但我发现使用内置结构更容易。
我在评论中建议使用字符列表。可能是这样的:
然而,由于您的代码中已经有一个数字和字符的dict,我们也可以使用这个
code
dict:当然,您仍然需要添加停止条件和允许用户以数字形式输入正确短语的方法。但是
make_a_guess
函数应该是我认为您正在寻找的奖金问题
正如你在评论中所问的,我是否知道为什么我代码中的数字与索引中的数字相比相差1。 这可能仅仅是因为这里的这一行,它从
1
而不是0
到27
的最小值进行采样如果您将其更改为以下内容,它也将从0开始
通常,数组从
0
开始计数,而不是从1
开始计数,而且熊猫似乎遵守了这个约定相关问题 更多 >
编程相关推荐