def foo(previous):
"""
Takes in string of format 'U#####...'
Returns incremented value in same format.
Returns None if previous already maxed out (i.e. 'U9999')
"""
value_str = previous[1:] # chop off 'U'
value_int = int(value_str) # get integer value
new_int = value_int + 1 # increment
new_str = str(new_int) # turn back into string
# return None if exceeding character limit on ID
if len(new_str) > len(value_str):
print("Past limit")
return(None)
# add leading zeroes
while(len(new_str) < len(value_str)):
new_str = '0' + new_str
# add 'U' and return
return('U' + new_str)
如果我能澄清任何事情,请告诉我!这里有一个脚本可以用来测试它:
# test
current_id = 'U0001'
while(True):
current_id = foo(current_id)
print(current_id)
if current_id == None:
break
如果我理解正确,主要问题是前导零。i、 e.不能只增加上一个ID,因为类型转换“0001”只给出1而不是0001。如果我错了,请纠正我
不管怎样,这是我想到的。这比你可能需要的要详细得多,但我想确保我的逻辑是清楚的
如果我能澄清任何事情,请告诉我!这里有一个脚本可以用来测试它:
相关问题 更多 >
编程相关推荐