#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. Ах, вот оно что! Спасибо! Я также забыл включить часть своего вопроса, я отредактировал сообщение в конце, чтобы включить его, если у вас есть какое-либо представление, это было бы здорово.