question sample input outputs to check, an input is 221, 1, 7 the output shud be invalid move as the 7th position of 0000221 is 1 already not 0 so it shud be an invalid move which my validation checker does correct except after that it still prints out the whole thing because there is no error with printing it out but i dont want it to print after finding the invalid move.
long_number = int(input()) #represents the 7-digit number to explore
player_number = int(input()) #the number the player inputs
column_number = int(input()) #represents the column of the 7-digit number to explore
if column_number < 1 or column_number > 7:
print("invalid move")
elif player_number == 1 or player_number == 2:
r_num1 = long_number % 1000000
digit_pos1 = long_number // 1000000
r_num2 = r_num1 % 100000
digit_pos2 = r_num1 // 100000
r_num3 = r_num2 % 10000
digit_pos3 = r_num2 // 10000
r_num4 = r_num3 % 1000
digit_pos4 = r_num3 // 1000
r_num5 = r_num4 % 100
digit_pos5 = r_num4 // 100
r_num6 = r_num5 % 10
digit_pos6 = r_num5 // 10
r_num7 = r_num6 % 1
digit_pos7 = r_num6 // 1
if column_number == 1:
if digit_pos1 == 0:
digit_pos1 = player_number
elif column_number == 2:
if digit_pos2 == 0:
digit_pos2 = player_number
elif column_number == 3:
if digit_pos3 == 0:
digit_pos3 = player_number
elif column_number == 4:
if digit_pos4 == 0:
digit_pos4 = player_number
elif column_number == 5:
if digit_pos5 == 0:
digit_pos5 = player_number
elif column_number == 6:
if digit_pos6 == 0:
digit_pos6 = player_number
elif digit_pos7 == 0:
digit_pos7 = player_number
else:
print("invalid move")
def digit_pos_check
if digit_pos1 > 0:
print(digit_pos1,digit_pos2,digit_pos3,digit_pos4,digit_pos5,digit_pos6,digit_pos7, sep='')
elif digit_pos2 > 0:
print(digit_pos2,digit_pos3,digit_pos4,digit_pos5,digit_pos6,digit_pos7, sep='')
elif digit_pos3 > 0:
print(digit_pos3,digit_pos4,digit_pos5,digit_pos6,digit_pos7, sep='')
elif digit_pos4 > 0:
print(digit_pos4,digit_pos5,digit_pos6,digit_pos7, sep='')
elif digit_pos5 > 0:
print(digit_pos5,digit_pos6,digit_pos7, sep='')
elif digit_pos6 > 0:
print(digit_pos6,digit_pos7, sep='')
elif digit_pos7 > 0:
print(digit_pos7)
else:
print("invalid move")
return digit_pos_check
Advertisement
Answer
Sounds like you want to stop your programme execution after reaching an invalid move. Wrap the programme in a function, and return after the invalid print statement, like:
print('invalid move')
return
this would allow the program to skip the rest of the functions and therefore no longer print anything else.
try this:
def main():
long_number = int(input()) #represents the 7-digit number to explore
player_number = int(input()) #the number the player inputs
column_number = int(input()) #represents the column of the 7-digit number to explore
if column_number < 1 or column_number > 7:
print("invalid move")
return
elif player_number == 1 or player_number == 2:
r_num1 = long_number % 1000000
digit_pos1 = long_number // 1000000
r_num2 = r_num1 % 100000
digit_pos2 = r_num1 // 100000
r_num3 = r_num2 % 10000
digit_pos3 = r_num2 // 10000
r_num4 = r_num3 % 1000
digit_pos4 = r_num3 // 1000
r_num5 = r_num4 % 100
digit_pos5 = r_num4 // 100
r_num6 = r_num5 % 10
digit_pos6 = r_num5 // 10
r_num7 = r_num6 % 1
digit_pos7 = r_num6 // 1
if column_number == 1:
if digit_pos1 == 0:
digit_pos1 = player_number
elif column_number == 2:
if digit_pos2 == 0:
digit_pos2 = player_number
elif column_number == 3:
if digit_pos3 == 0:
digit_pos3 = player_number
elif column_number == 4:
if digit_pos4 == 0:
digit_pos4 = player_number
elif column_number == 5:
if digit_pos5 == 0:
digit_pos5 = player_number
elif column_number == 6:
if digit_pos6 == 0:
digit_pos6 = player_number
elif digit_pos7 == 0:
digit_pos7 = player_number
else:
print("invalid move")
return
if digit_pos1 > 0:
print(digit_pos1,digit_pos2,digit_pos3,digit_pos4,digit_pos5,digit_pos6,digit_pos7, sep='')
elif digit_pos2 > 0:
print(digit_pos2,digit_pos3,digit_pos4,digit_pos5,digit_pos6,digit_pos7, sep='')
elif digit_pos3 > 0:
print(digit_pos3,digit_pos4,digit_pos5,digit_pos6,digit_pos7, sep='')
elif digit_pos4 > 0:
print(digit_pos4,digit_pos5,digit_pos6,digit_pos7, sep='')
elif digit_pos5 > 0:
print(digit_pos5,digit_pos6,digit_pos7, sep='')
elif digit_pos6 > 0:
print(digit_pos6,digit_pos7, sep='')
elif digit_pos7 > 0:
print(digit_pos7)
else:
print("invalid move")
return
main()