菜单驱动的python程序在命令行中传递值

瑞亚·雷迪

我的目标:编写一个菜单驱动的 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从命令行 python 传递值

菜单python命令行

python程序在命令行中停止

在 Python 中从文件传递命令行参数

在python中从命令行传递参数

通过pytest在python中传递命令行参数

无法通过命令行传递值

如何在python中为命令行应用程序构建交互式菜单?

命令行增强程序中的Python身份功能

网络中的命令行程序(python)

在命令行中传递gretty选项

Python的命令行参数中没有后续值

通过命令行在Windows(XP)中安装驱动程序?

如何在Lubuntu 11.10中从命令行显示声卡驱动程序的名称?

使用C#驱动程序而不是在命令行中,MongoDB性能会降低

从命令行传递值的java程序,它是如何工作的?

如何在Java程序中将double值作为命令行参数传递

通过命令行启用/禁用设备驱动程序

安装驱动程序表单命令行

使用python -c执行在命令行中作为字符串传递的python命令

Windows没有将命令行参数传递给从外壳执行的Python程序

如何向命令行程序传递目录中的文件列表?

如何将命令行参数传递给Windows批处理文件中的程序?

如何将所有命令行参数传递给Makefile中的程序?

如何在16位汇编程序中传递/检索DOS命令行参数?

环境变量中的带引号的字符串传递给命令行上的程序

将命令行参数传递给Shell脚本中的程序

python argparse-在不使用命令行的情况下传递值

从命令行将参数传递到C程序