<p>您正在选项1内创建函数main,但从未调用该函数</p>
<pre><code>if __name__ == "__main__"
</code></pre>
<p>是脚本的入口点,不过在本例中,您要做的是直接调用<em>main</em>函数。您可以这样尝试:</p>
<pre><code> if int(userchoice) == 1:
# Copy your code for question 1 here
# Question 1
def main():
# String input
s = input('Enter Random String of numbers and letters: ')
# Calculating string of numbers
str1 = ""
for i in range(0, len(s)):
str = s[i]
if (str.isnumeric() == True):
str1 += str
print("String of Numbers is: ", str1)
# Calculating longest substring in descending order
str2 = ""
str2 += str1[0]
max_string = str2
length = 1
max_length = 1
for i in range(1, len(str1)):
if str1[i] > str1[i - 1]:
length += 1
str2 += str1[i]
if length > max_length:
max_length = length
max_string = str2
else:
length = 1
str2 = str1[i]
print("Longest substring in numberic descending order is", max_string)
# Calculating the Average of numbers
avg = 0.0
for i in range(0, len(max_string)):
avg += float(max_string[i])
avg = avg / max_length
print("Average: ", round(avg, 0))
main()
</code></pre>
<p>或者,您可以直接将代码放入选项1块中的<em>main</em>函数中,如下所示:</p>
<pre><code> if int(userchoice) == 1:
# Copy your code for question 1 here
# Question 1
# String input
s = input('Enter Random String of numbers and letters: ')
# Calculating string of numbers
str1 = ""
for i in range(0, len(s)):
str = s[i]
if (str.isnumeric() == True):
str1 += str
print("String of Numbers is: ", str1)
# Calculating longest substring in descending order
str2 = ""
str2 += str1[0]
max_string = str2
length = 1
max_length = 1
for i in range(1, len(str1)):
if str1[i] > str1[i - 1]:
length += 1
str2 += str1[i]
if length > max_length:
max_length = length
max_string = str2
else:
length = 1
str2 = str1[i]
print("Longest substring in numberic descending order is", max_string)
# Calculating the Average of numbers
avg = 0.0
for i in range(0, len(max_string)):
avg += float(max_string[i])
avg = avg / max_length
print("Average: ", round(avg, 0))
</code></pre>