我的目标:编写一个菜单驱动的 python 程序,用户在命令行中传递值,a。计算字符数,特殊字符和数字。湾 将所有数字相加并显示总和是奇数还是偶数。C。按降序对字符进行排序。我的代码:
from sys import argv
print(argv[1:])
print("enter 1 for counting, 2 for sum and 3 for sorting the letter")
choice=int(input("enter choice: "))
if choice==1:
alphabets = digits = special = 0
for i in range(1,len(argv)):
if((argv[i] >= 'a' and argv[i] <= 'z') or (argv[i] >= 'A' and argv[i] <= 'Z')):
alphabets = alphabets + 1
elif(argv[i] >= '0' and argv[i] <= '9'):
digits = digits + 1
else:
special = special + 1
print("Total Number of Alphabets : ", alphabets)
print("Total Number of Digits : ", digits)
print("Total Number of Special Characters : ", special)
elif choice==2:
sum=0
for i in range(1,len(argv)):
if(argv[i].isdigit()):
sum=sum+int(argv[i])
print(sum)
if sum%2==0:
print("sum is even")
else:
print("sum is odd")
elif choice==3:
s=""
for i in range(1,len(argv)):
if((argv[i] >= 'a' and argv[i] <= 'z') or
(argv[i] >= 'A' and argv[i] <= 'Z')):
s=s+argv[i]
# print(s)
def sortdes(str):
str.sort(reverse = True)
str1 = ''.join(str)
print(str1)
s1=list(s)
sortdes(s1)
但我没有得到想要的输出。例如,如果我的输入是 543(在命令行中),我的输出是:
['543']
enter 1 for counting, 2 for sum and 3 for sorting the letter
enter choice: 1
Total Number of Alphabets : 0
Total Number of Digits : 1
Total Number of Special Characters : 0
>>>
['543']
enter 1 for counting, 2 for sum and 3 for sorting the letter
enter choice: 2
543
sum is odd
>>>
['543']
enter 1 for counting, 2 for sum and 3 for sorting the letter
enter choice: 3
>>>
我该如何纠正?请帮忙。提前感谢您的时间和帮助:)
我假设您只传递一个参数,您需要在适用的情况下将 argv[i] 替换为 argv[1][i]
from sys import argv
print(argv[1])
print("enter 1 for counting, 2 for sum and 3 for sorting the letter")
choice=int(input("enter choice: "))
if choice==1:
alphabets = digits = special = 0
for i in range(len(argv[1])):
if((argv[1][i] >= 'a' and argv[1][i] <= 'z') or (argv[1][i] >= 'A' and argvargv[1][i] <= 'Z')):
alphabets = alphabets + 1
elif(argv[1][i] >= '0' and argv[1][i] <= '9'):
digits = digits + 1
else:
special = special + 1
print("Total Number of Alphabets : ", alphabets)
print("Total Number of Digits : ", digits)
print("Total Number of Special Characters : ", special)
elif choice==2:
sum=0
for i in range(len(argv[1])):
if(argv[1][i].isdigit()):
sum=sum+int(argv[1][i])
print(sum)
if sum%2==0:
print("sum is even")
else:
print("sum is odd")
elif choice==3:
s=""
for i in range(len(argv[1])):
if((argv[1][i] >= 'a' and argv[1][i] <= 'z') or
(argv[1][i] >= 'A' and argv[1][i] <= 'Z')):
s=s+argv[1][i]
# print(s)
def sortdes(str):
str.sort(reverse = True)
str1 = ''.join(str)
print(str1)
s1=list(s)
sortdes(s1)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句