我是编程新手,正在edx.org上课程。
我在函数中使用条件语句时遇到问题。每次我调用该函数时,它都会提供我想要的输出,但最后还会显示“ NONE”。有什么办法可以在代码中使用return关键字?下面是问题和我的代码。
###create a functions using startswith('w')
###w_start_test() tests if starts with "w"
# function should have a parameter for test_string and print the test result
# test_string_1 = "welcome"
# test_string_2 = "I have $3"
# test_string_3 = "With a function it's efficient to repeat code"
# [ ] create a function w_start_test() use if & else to test with startswith('w')
# [ ] Test the 3 string variables provided by calling w_start_test()
test_string_1='welcome'.lower()
test_string_2='I have $3'.lower()
test_string_3='With a function it\'s efficient to repeat code'.lower()
def w_start_test():
if test_string_1.startswith('w'):
print(test_string_1,'starts with "w"')
else:
print(test_string_2,'does not start with "w"')
if test_string_2.startswith('w'):
print(test_string_2,'starts with "w"')
else:
print(test_string_2,'does not starts with "w"')
if test_string_3.startswith('w'):
print(test_string_3,'starts with "w"')
else:
print(test_string_3,'does not start with "w"')
print(w_start_test())
答案 0 :(得分:0)
这里有很多问题,我会尽力回答。
由于某种原因,您试图打印出函数,这只会尝试返回函数的类型,即None。那不会返回任何东西。
据我了解,您想比较许多不同的字符串,有几种方法可以做到这一点,但这是我的解决方案:
您将3个字符串放入清单,如下所示:
test_strings = ['welcome'.lower(),'I have $3'.lower(),'With a function it\'s efficient to repeat code'.lower()]
我们已经像创建函数一样创建了函数,但是包括了参数:
def w_start_test(test_string_list):
for string in test_string_list:
if string.startswith('w'):
print(string,'starts with "w"')
else:
print(string,'does not start with "w"')
return
此函数接受一个参数test_string_list并遍历此列表中的所有对象,并进行您提供的比较。然后我们什么也不会返回,因为我不确定您要返回什么。
假设您要返回“已完成”,则可以执行以下操作:
test_strings = ['welcome'.lower(),'I have $3'.lower(),'With a function it\'s efficient to repeat code'.lower()]
def w_start_test(test_string_list):
for string in test_string_list:
if string.startswith('w'):
print(string,'starts with "w"')
else:
print(string,'does not start with "w"')
return 'Completed Test'
def __main__():
ValueOfTest = w_start_test(test_strings)
print(ValueOfTest)
答案 1 :(得分:0)
功能有些复杂。您正在寻找的解决方案如下:
public AlgorithmEnum getAlgorithm(String algorithm) {
return AlgorithmEnum.valueOf(algorithm.substring(0, algorithm.indexOf("withRSA")));
}
答案 2 :(得分:0)
我试图找到正确的答案。我想我是这样做的。
这是我的问题解决方案的变体。
test_string_1 = "welcome"
test_string_2 = "I have $3"
test_string_3 = "With a function it's efficient to repeat code"
# [ ] create a function w_start_test() use if & else to test with startswith('w')
# [ ] Test the 3 string variables provided by calling w_start_test()
if test_string_1.lower().startswith('w'):
print('this string starts with \'w\'')
else:
pass
if test_string_2.lower().startswith('w'):
print('this string starts with \'w\'')
else:
print('this string doesn\'t start with \'w\'')
if test_string_3.lower().startswith('w'):
print('this string starts with \'w\'')
else:
pass