【白俊】文字列解析10820号Pythonデータ構造


📌考える


  • どのくらいの文字列が入っているか分からない場合、inputをどのように受信するか.
    ->どのくらいの文字列が入っているか分からないのでsys.stdin.readline()を使用します.
    -> sys.stdin.readline()は、書き換え文字("n")を受信します.消去のためにrstrip(「n」)を使用します.

  • 小文字、大文字、数字、スペースはどのように区別しますか?
    ->メソッド1.専用関数(islower()、isupper()、isdigit()を使用します.
    ->メソッド2.」a"<=比較<="z","A"<=比較<="Z"
  • 📌私が書いたコード

    import sys
    
    while True:
        s = sys.stdin.readline().rstrip('\n')
    
        if not s:
            break
        
        small, capital, num, space = 0, 0, 0, 0
    
        for i in range(len(s)):
    
            if s[i].islower():
                small += 1
    
            elif s[i].isupper():
                capital += 1
            
            elif s[i].isdigit():
                num += 1
    
            else:
                space += 1
    
        print(small, capital, num, space)

    📌に答える

  • n個の文字列は入ることができ、ドアで文字列を受け入れる.
    繰り返し文の入力はinput()ではなくsysです.stdin.readline()を使用して処理速度を向上させます.
    sys.stdin.readline()は改行記号("n")を受信するのでrstrip("n")を使用して削除します.
    sがメールを受け取っていない場合は、終了します.
    💡 rstrip():a変数で、右端のvvを削除します.
    a = abcdvv -> a.rstrip('vv') -> abcd
  • import sys
    
    while True:
        s = sys.stdin.readline().rstrip('\n')
    
        if not s:
            break
  • whileは、小文字、大文字、数字、スペースを区別します.
    💡 islower():小文字はtrueまたはfalseを返します.
    💡 isupper():大文字のTrueまたはFalseを返します.
    💡 isdigit():数値の場合はtrueまたはfalseを返します.
  • small, capital, num, space = 0, 0, 0, 0
    
        for i in range(len(s)):
    
            if s[i].islower():
                small += 1
    
            elif s[i].isupper():
                capital += 1
            
            elif s[i].isdigit():
                num += 1
    
            else:
                space += 1