[英]Append digit to split list
這是我計算GTIN-8號碼第八位的程序。
目標是創建一個用戶可以輸入7位數的列表,將列表拆分為單獨的值,將數字1,3,5,7乘以3並將其添加到其余值。
origSevList = []
def enterDig():
global origSev
origSev = input("Please enter your seven digit number for your GTIN-8 code ")
origSevList.append(origSev)
return origSevList
def splitList(origSevList):
global item
for item in origSevList:
item.split(',')
origSevList = [item[0], item[1], item[2], item[3], item[4], item[5], item[6]]
print (("Inputted seven digits number split in a list"), origSevList)
def xThree(origSevList):
global xByThree
xByThree = int(item[0])*3 + int(item[2])*3 + int(item[4])*3 + int(item[6])*3
def xOne(origSevList):
global xByOne
xByOne = int(item[1]) + int(item[3]) + int(item[5])
def addOneThree(origSevList):
global addSev
addSev = xByThree + xByOne
print (("The sum of your seven digits mulitplied alternately by 1 and 3 ="), addSev)
接下來是找到第八位數字
def eighthDigit(origSevList):
global eighth
roundNum = ((addSev + 9) // 10*10)
eighth = roundNum - addSev
print (("Your eighth digit is"), roundNum - addSev)
print ((addSev + 9) // 10*10)
enterDig()
splitList(origSevList)
xThree(origSevList)
xOne(origSevList)
addOneThree(origSevList)
eighthDigit(origSevList)
現在我需要做的是將第八位數字附加到列表並打印它以獲得完整的GTIN8編號。 有關如何做到這一點的任何想法? 我是初學者,請原諒我凌亂的代碼
我想這是你想要的東西:
def func():
sum = 0
number = raw_input("7digit? ")
for i in range(len(number)):
if i%2 ==0:
sum += int(number[i]) * 3
else:
sum += int(number[i])
GTIN8 = int( round(sum, -1)- sum) % 10
return number+ str(GTIN8)
out = func()
print out
工作如下:
>>> ================================ RESTART ================================
>>>
7digit? 1234567
12345670
一般來說:
如果要在字符串中添加字母:只需使用+
字符:
>>> a = "1"
>>> b = "12345"
>>> a + b
'112345'
>>>
如果要在左側的數字中添加數字:
>>> b = 12345
>>> c = b*10 + a
>>> c
123451
>>>
如果要將元素添加到列表中:
>>> a = 1
>>> b = [1,2,3]
>>> b.append(a)
>>> b
[1, 2, 3, 1]
>>>
>>>
>>> a = "1"
>>> b = ["1", "2", "3"]
>>> b.append(a)
>>> b
['1', '2', '3', '1']
>>>
EbraHim的回答可能符合您的目的。 我有一些額外的反饋,以使代碼更健壯。
將所有int類型轉換放在try和catch塊中,因此如果用戶沒有輸入數字0-9,代碼將能夠正確處理並給出錯誤消息(優雅地退出而不是拋出異常)。 此外,您可以使用len()函數檢查用戶是否輸入了7位數,因此如果用戶輸入的字符多於或少於7個字符,您可以立即給出錯誤消息。
另外,為什么要將origSev附加到origSevList? 您將獲得origSev中的7位數字。 您可以通過origSev [i]訪問單個數字,轉換為int並根據需要進行處理。
謝謝!!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.