徐福福 发表于 2023-10-11 06:58:46

问题求助 代码

# Q1. DNA Complement

---

## Learning objectives

* Experience solving a real-life inspired problem using programming
* Solve a problem using what we have learnt from week 2, including:
* Conditional statements
* Loops

---

## Background information

DNA, an abbreviation of deoxyribonucleic acid, codes genetic information for organisms. A DNA molecule consists of two strands coiled around each other, with each strand being held together by bonds between the bases: Adenine (A) pairs with thymine (T), whilst cytosine (C) pairs with guanine (G).

The two strands of DNA are complementary: each base in one strand is bonded to its complement in the other strand. For example, if one strand of DNA is 'AAAGTCTGAC', the complementary strand would be 'TTTCAGACTG'.

---

## Instruction

Write your code in (src/dna_complement.py) to implement the program that does the following:

> Get a string from a user that represents a DNA strand and print out its complement. The printout from the program follows the ones from the `"Example"` section below.

---

## Assumptions

* The given string is non-empty and is always composed of 'A', 'T', 'C' and/or 'G'

---

## Example

```
>>> Enter a DNA strand: AAAA
TTTT
```
```
>>> Enter a DNA strand: AAAGTCTGAC
TTTCAGACTG
```

Note here:
* `Enter a DNA strand: ` is the input prompt
* `TTTT` and `TTTCAGACTG` are printouts
* `AAAA` and `AAAGTCTGAC` are inputs from users
请问大神们这个代码该怎么写呀

isdkz 发表于 2023-10-11 06:59:17

这道题可以使用循环和条件语句来解决。我们可以遍历输入的DNA链,然后对于每个碱基,找到它的互补碱基并将其附加到一个新的字符串中,最后打印出这个新的字符串即可。以下是代码示例:

# -*- coding: utf-8 -*-

def complement(base):
    """
    返回碱基的互补碱基
    """
    if base == 'A':
      return 'T'
    elif base == 'T':
      return 'A'
    elif base == 'C':
      return 'G'
    elif base == 'G':
      return 'C'
    else:
      return ''

def dna_complement(dna):
    """
    返回DNA链的互补链
    """
    complement_dna = ''
    for base in dna:
      complement_dna += complement(base)
    return complement_dna

if __name__ == '__main__':
    dna = input('Enter a DNA strand: ')
    print(dna_complement(dna))


在这个程序中,我们定义了两个函数: complement 和 dna_complement 。 complement 函数接收一个碱基,返回它的互补碱基。 dna_complement 函数接收一个DNA链,遍历它的每个碱基,并使用 complement 函数找到它的互补碱基,将其附加到一个新的字符串中。最后, dna_complement 函数返回这个新的字符串。

在程序的主函数中,我们使用 input 函数获取用户输入的DNA链,然后调用 dna_complement 函数,将其返回值打印出来。

陶远航 发表于 2023-10-11 06:59:22

这个问题可以通过Python的基本字符串操作和字典映射来解决。以下是一个简单的解决方案:

# 创建一个字典,用于存储DNA碱基对的互补关系
complement = {'A': 'T', 'T': 'A', 'C': 'G', 'G': 'C'}

# 获取用户输入的DNA链
dna_strand = input(\"Enter a DNA strand: \")

# 初始化一个空字符串,用于存储互补链
complement_strand = \"\"

# 遍历用户输入的DNA链
for base in dna_strand:
    # 使用字典查找每个碱基的互补碱基,并添加到互补链中
    complement_strand += complement

# 打印互补链
print(complement_strand)


这段代码首先创建了一个字典,用于存储每个DNA碱基(A、T、C、G)的互补碱基。然后,它获取用户输入的DNA链,并初始化一个空字符串用于存储互补链。

接下来,代码遍历用户输入的DNA链,对于链中的每个碱基,它使用字典查找该碱基的互补碱基,并将其添加到互补链中。

最后,代码打印出互补链。
请注意,本回答来自GPT-4
如果问题已经解决,请设置最佳答案

Mike_python小 发表于 2023-10-11 06:59:58

Q1. DNA Complement

---

根据问题描述,我们要编写一个程序,该程序可以获取一个字符串作为DNA链,并打印其互补链。

我们可以通过遍历输入的字符串并根据碱基的配对规则来创建互补链。具体来说,对于A,我们需要打印T,对于T,我们需要打印A,对于C,我们需要打印G,对于G,我们需要打印C。

以下是代码实现,您可以将其放入(src/dna_complement.py)文件中。


# 获取用户输入
dna_strand = input("Enter a DNA strand: ")

# 创建一个空字符串用于持有互补链
complement_strand = ""

# 遍历DNA链的每个碱基,并将其互补碱基添加到互补链中
for base in dna_strand:
    if base == "A":
      complement_strand += "T"
    elif base == "T":
      complement_strand += "A"
    elif base == "C":
      complement_strand += "G"
    elif base == "G":
      complement_strand += "C"

# 打印互补链
print(complement_strand)


希望这可以帮助您解决问题!如果您还有其他问题,请随时提出。

球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}
页: [1]
查看完整版本: 问题求助 代码