gpt4 book ai didi

string - Perl $strings 到哈希表的转换

转载 作者:行者123 更新时间:2023-12-02 08:48:51 25 4
gpt4 key购买 nike

我正在研究一些 DNA(A、T、C 和 G,有可能加入 U)

现在我有一个非常长的字符串,其中充满了未定义长度的 DNA。我已经完成了核苷酸碱基的代码。

%nucleotide_bases = ( A => Adenine, 
T => Thymine,
G => Guanine,
C => Cytosine );

$nucleotide_bases{'U'} = 'This is a RNA base called Uracil';#T=U for RNA

现在我需要做的就是放入某种循环来读取字符串中的每个字符。由于此代码是针对学生的,因此它需要简单。几周前我自己开始使用 perl,在那之前是 java。

字符串(称为 $string1)需要打印它的全名,因为每个碱基对都被读取(一次一个)。所以当字符串说ATATCGCG

屏幕输出需要这样写:腺嘌呤胸腺嘧啶腺嘌呤胸腺嘧啶胞嘧啶鸟嘌呤胞嘧啶鸟嘌呤

如果这对字符串来说太棘手了,我可以使用数组作为起点。非常感谢您的协助。

优秀的答案。我们现在就准备好了。

我遇到的另一个问题是关于确保用户只能输入 DNA 碱基(A、T、C 和 G)。我认为这称为输入验证。

print "Please enter your first DNA sequence now: \n";
$userinput1=<>;
chomp $userinput1;

您将如何在那里添加输入验证?除非满足条件,否则应始终重新询问第一个打印语句。

我知道我需要类似的东西

 if($userinput1 ne 'a' or 't' or 'c' or 'g') {
print "Please enter DNA only (A, T, C or G)";
}

我不太确定如何返回到原始打印语句

最佳答案

使用食谱 Processing a String One Character at a Time ,我想到了这个:

use warnings;use strict;my %nucleotide_bases = ( A => 'Adenine',              T => 'Thymine',              G => 'Guanine',              C => 'Cytosine' );my $string = 'ATATCGCG';my @array = split(//, $string);foreach (@array) {    my $char = $_;    print $nucleotide_bases{$char}, ' ';}

请注意,我正在使用 use warningsuse strict(作为初学者,您可能也应该这样做),所以我不得不在周围添加引号基本名称。此外,该程序在末尾打印出一个额外的空格。

关于string - Perl $strings 到哈希表的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10154001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com