【问题标题】:Alternatives to the code below? I am very new to coding下面代码的替代方案?我对编码很陌生
【发布时间】:2021-01-14 01:13:55
【问题描述】:
import math
i = (2)
max = (2048)
num = (2)
while i < max:
    print(int(i))
    i *= num
    if i > max:
        i /= num
        break
if i == max:
    while i <= max:
        print(int(i))
        i /= num
        if i == round(1):
            break
        else:
            print(int(i))
            i /= num
            if i == round(1):
                break

我对编码领域很陌生,所以我认为 PYTHON3 是一种很好的入门语言! 出于某种奇怪的原因,我希望程序打印出 2 并将其加倍直到 2048。然后我想打印出数字但将它们除以 2!我在大约 1-2 小时内得到了我想要的东西(我知道......一个完整的平民。)

由于我是新手,我只是想看看可以通过哪些方式缩短/改进它。

【问题讨论】:

    标签: python-3.x numbers number-formatting


    【解决方案1】:

    您的逻辑大部分都很好,只是冗长。您不需要将变量包装在括号中,也不需要为此导入数学。除了那份好工作。

    i = 2
    while i < 2048:
        print(i)
        i *= 2
    while i > 2:
        i //= 2
        print(i)
    

    【讨论】:

      【解决方案2】:

      类似这样的东西可以像下面的代码一样进一步改进: 几点建议:1) 使用更具描述性的变量名,如upper_bound,并避免使用像max 这样的内置变量名; 2) 学习looping 和变量赋值和表达式等基础知识。

      upper_bound = 2048
      
      num = 2
      
      while num < upper_bound:
          num = num * 2
      
          print(num, end='\t')
      
          
      
      while num > 0:
          num = num // 2
          print(num, end='\t')
          
      

      【讨论】:

        【解决方案3】:
        for x in range(1,12):
          z = 2**x 
          print(z)
          
          
        for y in range (12,1,-1):
          z = 2**y 
          print(z)
        

        在控制台中编写如下函数调用

        printMultiples(2,2048,2)
        
        def printMultiples( initialValue,endValue,multipliedBy): 
            initialValueSaved =  initialValue
            while initialValue <= endValue:
                print(initialValue)
                initialValue *= multipliedBy
            
           
            while endValue >= initialValueSaved:
                print(endValue)
                endValue //=multipliedBy
                
                
        
        
        

        【讨论】:

          猜你喜欢
          • 2015-10-17
          • 2014-02-01
          • 1970-01-01
          • 2013-11-27
          • 1970-01-01
          • 1970-01-01
          • 2022-01-22
          • 1970-01-01
          • 2016-03-26
          相关资源
          最近更新 更多