Python-day 8-文字列の宿題を勝手に書きます

18581 ワード

  • 文字列を入力し、すべての奇数ビットの文字を印刷します(下の文字は1、3、5、7...ビットの文字です).たとえば、入力**'abcd 1234'**出力*'bd 24'**
    str1 = 'abcd1234'
    print(str1[1::2])
    
  • ユーザ名を入力、ユーザ名が正当(ユーザ名長6~10ビット)であるか否かを判断する
    user_name = input('      :')
    if 6 <= len(user_name) <= 10:
        print('  !')
    else:
        print('   !')
    
  • .
  • ユーザー名を入力し、ユーザー名が合法かどうかを判断します(ユーザー名には数字とアルファベットしかありません).例えば、「abc」-合法「123」-合法「abc 123 a」-合法
    user_name = input('      :')
    for x in user_name:
        if '0' <= x <= '9' or ('a' <= x <= 'z' or 'A' <= x <= 'Z'):
            continue
        else:
            print('   !')
            break
    else:
        print('  !')
    
  • ユーザー名を入力して、ユーザー名が正当かどうかを判断します(ユーザー名には数字とアルファベットしか含まれておらず、最初の文字は大文字でなければなりません).例えば、「abc」-非合法「123」-非合法「abc 123」-非合法「Abc 123 ahs」-合法
    user_name = input('      :')
    for x in user_name:
        if 'A' <= user_name[0] <= 'Z':
            if '0' <= x <= '9' or ('a' <= x <= 'z' or 'A' <= x <= 'Z'):
                continue
        else:
            print('   !')
            break
    else:
        print('  !')
    
  • 文字列を入力し、文字列内のすべての数値文字を取り出して新しい文字列を生成します.たとえば、入力**「abc 1 shj 23 kls 99+2 kkk」**出力:'123992'
    str2 = 'abc1shj23kls99+2kkk'
    str3 = ''.join([x for x in str2 if '0' <= x <= '9'])
    print(str3)
    
  • 文字列を入力し、文字列内のすべての小文字を対応する大文字出力にする(upperメソッドと自己書き込みアルゴリズムの2つの方法で実現される).例えば、入力**「a 2 h 2 klm 12+」**出力'A 2 H 2 KLM 12+'
    str4 = 'a2h2klm12+'
    print(str4.upper())
    
    str5 = []
    for x in str4:
        if 'a' <= x <= 'z':
            x = chr(ord(x) - 32)
            str5.append(x)
        else:
            str5.append(x)
    print(''.join(str5))
    
  • 1000未満の数字を入力し、対応する学号を生成します.たとえば、入力**「23」、出力'py 1901023'**入力**「9」、出力'py 1901009'**入力**「123」、出力'py 1901123'**
    str_num = 'py1901'
    num = input('       1000   :')
    if int(num) < 100:
        str_num = str_num + num.zfill(3)
    else:
        str_num = str_num + num
    print(str_num)
    
  • 文字列を入力します.統計文字列の数字以外の文字の個数を入力します.たとえば、入力**‘anc 2+93-sjでたらめ’**出力:4入力**’==’**出力:3
    str6 = input('        :')
    count = 0
    for x in str6:
        if '0' <= x <= '9' or ('a' <= x <= 'z' or 'A' <= x <= 'Z'):
            continue
        else:
            count += 1
    print(count)
    
  • 文字列を入力し、文字列の先頭と末尾を'+'に変更し、入力文字列**abc 123'、出力'+bc 12+'**
    str7 = input('     :')
    new_str7 = []
    for x in str7:
        if x == str7[0] or x == str7[-1]:
            x = '+'
        new_str7 += x
    print(''.join(new_str7))
    
  • などの新しい文字列を生成します.
  • 入力文字列、取得文字列の中間文字
  • たとえば、入力**abc 1234**出力:'1'入力**abc 123'**出力**c 1'**
    str8 = input('     :')
    if len(str8) & 1 == 0:
        print(str8[len(str8) // 2 -1], str8[len(str8) // 2])
    else:
        print(str8[len(str8) // 2])
    
  • ライタ文字列関数find/indexを実現する機能(文字列1における文字列2が初めて現れる位置を取得)
  • 例:文字列1は:how are you?Im fine, Thank you! , 文字列2は:you,印刷8
    str9 = 'how are you? Im fine, Thank you!'
    str10 = 'you'
    for x in range(len(str9)):
        if str9[x] == str10[0]:
            if str9[x+1] == str10[1]:
                if str9[x+2] == str10[2]:
                    print(x)
                    break
    
  • は、2つの文字列の共通文字
  • を取得する.
    たとえば、文字列1はabc 123、文字列2はhuak 3、印刷:共通文字はa 3
    str11 = 'abc123'
    str12 = 'huak3'
    str13 = []
    for x in str11:
        for y in str12:
            if x == y:
                str13.append(y)
    print(''.join(str13))