【问题标题】:Removing "None" from the output. Print hexadecimal digits from 0-F从输出中删除“无”。打印从 0 到 F 的十六进制数字
【发布时间】:2013-12-13 07:15:58
【问题描述】:
def hex_numb(a): # to print or create a string of hex numbers frm 0-F
   for a in range (a,16):
    b=hex(a)
    b=b[2]
    b=b.upper()
    a+=1
    print b

返回 0-F 所有 16 位数字,在 F 之后返回 None

【问题讨论】:

  • -1:看起来像作业
  • 需要删除“none”才能将此函数用作近 80 位数字的递归..

标签: python-2.7 for-loop hex


【解决方案1】:

几个cmets:

  1. 为什么这个函数有一个参数 (a)?如果您总是想要0-F,请删除参数,如果您想指定要返回的值,请丢失for 循环。
  2. 使用for x in range(n) 循环时,您无需在循环内手动增加x(即x += 1)。
  3. 您可以一次性完成各种字符串操作:b = hex(a)[2].upper()
  4. 你的函数正在隐式返回None(当你的函数没有显式return时的标准Python行为),所以如果你print hex_numb(0)运行函数,打印所有值,然后print返回值,None。所有打印工作都在函数内部完成,只需调用它:hex_numb(0)

【讨论】:

  • 嗨 Jonrsharpe,我想做的是,我将调用该函数,该函数将只返回 0-F 的十六进制值。它将从我在函数调用中给出的值开始给出值。在它从函数返回值直到'F'之后,我将执行另一项任务。我想从 00 开始到 0F,然后递增 1,然后从 10-1F 开始,然后从 20 到 2F,依此类推。
  • 在这种情况下,我建议返回一个列表:return [hex(x)[2].upper() for x in range(a, 16)]
猜你喜欢
  • 2013-03-30
  • 1970-01-01
  • 2016-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多