在python3.x中使用while循环语句进行除法、计数和乘法

2024-06-16 08:51:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python(3.x)相当陌生,我被赋予了这个关于大肠杆菌的任务。在

以下是我在任务中列出的要点:

•大肠杆菌数量每20分钟翻一番

•用户输入细菌的目标数量,并告诉单个大肠杆菌分解为目标细菌数所需的时间,最接近20分钟

•程序必须使用while循环

•程序应拒绝非数字输入或目标数字超过130000

所以,我说的对吗。。。Targetnumber/2,每次减半计数,直到数字变为1,计数次数*20分钟

到目前为止,在我的代码中,我有目标编号的用户输入(低于130000)和验证(如果不是数字):

while True:
    try:
        targetnumber = int(input('Enter the target number of E.coli under 130000: '))
        if 130000 >= targetnumber:
            break
    except ValueError:
        print("Please enter a numerical target number input under 130000.")
        continue
    else:
        print("Target number must be under 130000.")

但是我发现很难实现targetnumber/2,每次减半计数,直到number变为1,在我的代码中使用while循环计算count*20分钟。在

如果你能帮上忙的话,我将不胜感激。非常感谢


Tags: 代码用户程序numbertarget目标input数量
1条回答
网友
1楼 · 发布于 2024-06-16 08:51:51

您可以使用初始值为1的变量,然后继续乘以2,直到它等于或大于目标细菌为止,而不是将目标细菌数除以2。在

target_limit = 130000

while True:
    try:
        target_number = int(input('Enter the target number of E.coli: '))
        if target_number > target_limit:
            print('Target E.coli must be under ' + str(target_limit))
        else:
            break
    except ValueError:
        print('Enter a numeric input')

n_bact = 1
time_elapsed = 0

while n_bact < target_number:
    n_bact *= 2
    time_elapsed += 20

print(time_elapsed)

相关问题 更多 >