不完全相信我會這樣實現它,但我只是建立關你已經擁有:
import re
def is_number(n):
try:
int(n)
except ValueError:
return False
return True
def validate_token(token, prefix):
tokens = token.split()
if len(tokens) != 2:
print ('{} does not contain a second entry'.format(token))
return False
if tokens[0] != prefix:
print ('Entry is not in correct position: {0}. Was expecting {1}.'.format(token, prefix))
return False
return True
def read_input():
first = '1st'
second = '2nd'
c = input('input your numbers: ')
if (not (first in c and second in c)):
print ('Please enter in format: 1st n1, 2nd n2')
return
tokens = c.split(',')
if len(tokens) != 2:
print ('Please separate entries 1st and 2nd by a ","')
return
if (not validate_token(tokens[0], first) or not validate_token(tokens[1], second)):
print ('Not a valid entry invalid...')
return
n1 = tokens[0].split()[1]
n2 = tokens[1].split()[1]
if (not is_number(n1)):
print('n1 is not a number!')
return
if (not is_number(n2)):
print('n2 is not a number!')
return
n = re.findall(r'\d+', c)
for i in n[:1]:
print (i) ##this prints the 1st number entered
print (n[-1]) ##this prints the second number entered
read_input()
是單斜槓作品。道歉。更新鏈接及以上的代碼。請注意,上面的大部分工作正在驗證正確的輸入。如果有人有更簡潔的東西,請分享。
讓我們在這裏解釋做了驗證:
- 檢查輸入字符串包含第一和第二
- 檢查輸入字符串有正確的長度
- 檢查輸入字符串的個人令牌是正確的 a。首先檢查它們的長度是否正確 b。檢查它們的排列順序是否正確
- 檢查我們希望提取的最後一個元素實際上是一個數字。
這裏測試:https://repl.it/Jooi/8
你的意思是這個'如果(C == '1' +%d + '第二' +% d):? –
當你運行你的代碼時,你看到了什麼錯誤? – quamrana