我正在制作一个程序,将摩尔斯电码解密为英文。但是,当程序运行并且我将摩尔斯电码放入(例如* - 这应该导致程序打印出“A”)时,程序只给出一个空格。
message = input("Please type a message to encrypt. ")
new_message = ""
letters = {"*-": "A",
"-***": "B",
"-*-*": "C"}
for let in message:
if let in letters:
new_message += letters[let]
print(new_message)
我正在寻找一种方法来解决这个问题,方法是使用上面的替换方法。谢谢。
答案 0 :(得分:0)
我认为您的输入与此*-/-***
类似,因此每个字母都以/
分隔。
#split every letter into list of letters
message = input('Please type a message to encrypt: ').split('/')
#join the list after decrypt it
print("".join([letters[letter] for letter in message]))
答案 1 :(得分:-1)
这是一个解决方案:
class PollsList extends Component {
constructor() {
super();
this.state = {
polls: []
}
this.fetchPolls = this.fetchPolls.bind(this);
}
componentDidMount() {
$.ajax({
url: "/mypolls",
type: 'get',
dataType: 'json',
contentType: 'application/json',
success: (polls_list)=>this.fetchPolls(polls_list), // this must look like that.
error: (err, status, xhr) =>{
console.log(err);
}
});
}
fetchPolls(polls_list){
for (let i = 0; i < polls_list.length; i++) {
let data = polls_list[i].poll[0];
this.setState({polls:data});
}
}
render() {
console.log(this.state.polls);
return (
<Fragment>
<div className='container'>
<ul id='polls_list'>{this.state.polls.option1} {this.state.polls.option2}</ul>
</div>
</Fragment>
)
}
}
输入message = input("Please type a message to encrypt: ")
new_message = ""
letters = {".-": "A",
"-...": "B",
"-.-.": "C",}
if letters[message]:
new_message = letters[message]
else:
new_message = "This cannot be turned to morse code"
print(new_message)
将返回.-
。