用于计算字符串中字母数作为命令行参数的程序

时间:2015-04-08 17:00:12

标签: python

首先,我不想要一些代码进行复制粘贴。我想知道如何处理这个问题。我正在学习如何编程,而且我对何时使用循环感到困惑,我不知道是否这是正确的方法。

现在,这是我试图解决的问题:"编写一个程序来计算字符串中的字母数作为命令行参数,并打印出字符串中最常见字母的百分比(如果有相同频率的字母打印出所有相同的字母)"

1 个答案:

答案 0 :(得分:3)

您应该将任务分解为可以逐个处理的子任务。

  1. 如何接受用户输入。
  2. 如何获得该用户输入的长度。
  3. 如何存储每个角色。
  4. 如何存储和计算每个角色出现的次数。
  5. 从存储的字符数中,找到最常用的字符数。
  6. 如果您发现需要迭代用户输入,请在解决这些步骤时使用循环。请参阅以下示例。

    当您有一些数据需要迭代时,会使用循环。例如:

    commands = ["say hello","1 + 1","exit","this command would never be reached"]
    for command in commands:
        if command == "say hello":
            print "hello"
        elif command == "1 + 1":
            print 2
        elif command == "exit":
            break
    

    您可以检查某些数字的数据:

    data = [1, 2, 3]
    for n in data:
        if n == 2:
            print "Found a 2!"
    

    您可以对数据进行排序:

    # separate all the upper, lower, and non-alphabet characters
    letters = "AbCdEfGhI!@"
    uppercase = []
    lowercase = []
    other = []
    for letter in letters:
        if letter.isupper():
            uppercase.append(letter)
        elif letter.islower():
            lowercase.append(letter)
        else:
            other.append(letter)
            lowercase.append(letter)
    

    while循环以类似的方式使用,通常对已知的有限范围内的事物使用for循环,对于迭代次数可能不对的任务使用while循环修好。

     data = [1,2,3,4,5,6,7,8,9]
     while len(data) > 0:
         if data[-1] == 5:
             print data.pop()
             data.append(4)
         else:
             print data.pop()
    

    您还可以在while循环

    的位置使用for循环
     i = 0
     while i < 10:
         print i
         i += 1
    
     for i in xrange(10):
         print i
    

    上面的两个循环执行等效任务,从0-9

    打印数字