输出字符串前10不同字符


  1. 题目
  2. 原题答案
  3. 代码运行效果
  4. 完整代码


练习题目

python输出字符串前三个字符 python输出前10个字符_python输出字符串前三个字符




原题答案

python输出字符串前三个字符 python输出前10个字符_python_02




   我的想法:用列表存放不同字符,如输入多于10个不同字符,够10停止遍历输入字符,最后用’'字符联接字符列表输出,代码性能应该优于“集合与字符串相加”组合。(有文章说Python字符串相加,相当于每次都会遍历字符串,性能不咋滴。而联接字符串列表,就一次操作,代码性能优于前者。所以,我一般能用列表联接都不用字符串相加的了。)这样子,是真的好些么?🤪

我的代码运行效果

python输出字符串前三个字符 python输出前10个字符_python输出字符串前三个字符_03


python输出字符串前三个字符 python输出前10个字符_字符串_04


python输出字符串前三个字符 python输出前10个字符_字符串_05


python输出字符串前三个字符 python输出前10个字符_python_06


python输出字符串前三个字符 python输出前10个字符_python输出字符串前三个字符_07

python输出字符串前三个字符 python输出前10个字符_python输出字符串前三个字符_08

   可以看出,Python字符串对齐排版,对中文字符是不“友好”滴。😭😭




python完整代码
(如果从语句注释不能清楚作用,请评论区留言指教和探讨。🤝)
# coding: utf-8


'''输出字符串中不重复的字符'''
s = '''
            输入一个字符串,把左边
        10个不重复的字符(大小写算不
        同字符),挑选出来。如不重复的
        字符不到10个则按实际数目输出。
    
'''
blank = ' '
line = '﹊'*21
print(f'\n\n{line}\n{s}\n{line}\n')
s = input(f'\n\n{"输入字符串":_^37}\n\n$>> ')
s_out = [] #定义列表盛放前10不同字符(不足10以实际数目输出)。
for i in s:
    if len(s_out)==10:
        break #不同字符够10,退出遍历循环。
    if i not in s_out: #字符不在前10列表,追加字符。
        s_out.append(i)
print(f'\n\n输入字符串:{s}\n{line}\n\n不重复的字符:\n{"".join(s_out):_^36}\n\n{line}\n')