我试图在Swift中给出DNA链(一个字符串)返回RNA补体。基本上,如果DNA有一个" T",我用" U"替换它。
我的代码是:
func toRNA(DNA: String) -> String{
var RNA = DNA
for ntide in RNA{
if ntide == "T"{
ntide = "U"
}
}
return RNA
}
Swift ::错误:
无法分配价值:' ntide'是一个“让...”
ntide = "U"
~~~~~ ^
答案 0 :(得分:3)
使用
func toRNA(DNA: String) -> String{
return DNA.replacingOccurrences(of: "T", with: "U")
}
答案 1 :(得分:2)
您的问题是由import os
os.system("clear")
start= raw_input("SUP?\n\n1: Repo\n2: Installed\n...")
if int(start)== 1:
os.system("clear")
while True:
repo= raw_input("\n1: Search repo\n2: Install\n3: Back\n...")
if int(repo)== 1:
os.system("clear")
search= raw_input("What are you trying to search?\n")
os.system("apt-cache search " + search)
if int(repo)== 2:
os.system("clear")
inst= raw_input("What would you like to install?\n")
os.system("sudo apt-get install " + inst)
else???
if int(start)==2:
os.system("clear")
ins=raw_input("\n1: Search Installed\n2: Delete installed\n...")
循环中声明的变量是不可变的这一事实引起的。对于简单的for ... in ...
,您只需遍历Collection
中存在的索引范围,并使用下标来访问可变变量的值。
Collection
但是,由于func toRNA(_ DNA:[Character])->String{
var RNA = DNA
for i in 0..<DNA.count {
if RNA[i] == "T" {
RNA[i] = "U"
}
}
return String(RNA)
}
let dna:[Character] = ["A","C","G","T"]
toRNA(dna) //"ACGU"
索引和下标的不同,这对您的问题来说不是那么简单,因此上面的示例使用String
来显示泛型方法。有关字符串的具体问题,请参阅以下解决方法。
您可以解决此问题,而不是将Array<Character>
复制到DNA
,然后通过RNA
迭代以获取必要的字符,只需遍历RNA
并更改要添加什么字符。
DNA
一个没有解决特定问题的简单解决方案,但适用于此特定问题的方法是使用简单的func toRNA(DNA: String) -> String{
var RNA = ""
for char in DNA {
if char == "T" {
RNA.append("U")
} else {
RNA.append(char)
}
}
return RNA
}
将map
的所有字符转换为"T"
"U"