Передача аргументов внутри инструкции If

#function #if-statement #arguments

#функция #if-инструкция #аргументы

Вопрос:

Я пытаюсь передать аргументы между двумя файлами и сталкиваюсь с проблемами. Я пытаюсь проанализировать сообщение на наличие в нем слова ‘foo’ и создать функцию, которая проверит, является ли сообщение только ‘foo’ или, возможно, представляет собой слово типа ‘foot’, которое содержит foo, но не является словом foo . Вот два файла

 test2.py

import os, sys
from functiontest import function

message = 'foo'
check = 0

if 'foo' in message:
    function(message,check)
    print(check)
    print('bar')
else:
    check = 0
if check == 0:
    print('foo not recognized')
  

и файл функции

 functiontest.py

import os, sys

def function(a,b):
    print('checking message')
    a = a.split()
    print(a)
    if a[0] == 'foo':
        b = 1
        print(b)
        return b
    else:
        b = 0
        return b
  

При запуске это указывает на то, что когда b устанавливается в 1 и передает его, оно передается неправильно и остается 0. Я хочу, чтобы она передавала проверку аргумента равной 1, если обнаружено, что слово не совсем ‘foo’, чтобы появилось сообщение о том, что ‘foo не обнаружено’. Что я делаю не так?

Следующий вопрос: Как только проверка подтверждается как 0 в инструкции if, есть ли способ прервать инструкцию и не выполнять следующие строки, которые находятся в этой инструкции if, а вместо этого перейти к инструкции else? Я бы предпочел каким-то образом включить это в функцию, чтобы основной код выглядел чище, потому что я мог бы включить больше встроенных операторов if, но я хочу избежать этого, если это возможно.

Ответ №1:

Вы отбрасываете возвращаемое значение function , затем печатаете check , которое никогда не изменялось по сравнению с исходным значением 0. Я полагаю, что вашим намерением было переназначить check возвращаемое значение функции:

 check = function(message,check)
print(check) 
  

Комментарии:

1. Ах, вот оно что! Спасибо! Я также забыл включить часть своего вопроса, я отредактировал сообщение в конце, чтобы включить его, если у вас есть какое-либо представление, это было бы здорово.