需求

完成字符串的逆序以及统计
设计一个程序,要求只能输入长度低于31的字符串,否则提示用户重新输入
打印如下内容:

  1. --------------------------------------------
  2. 您输入的字符串: zhongshanshan
  3. 长度: 13
  4. 逆序后为: nahsnahsgnohz
  5. 字符统计结果: z:1 h:3 o:1 n:3 g:1 s:2 a:2
  6. --------------------------------------------

分析

  1. 1. 输入字符串(while循环)
  2. 2. 字符串长度小于31位,否则提示重新输入
  3. 3. 您输入的字符串: ...
  4. 4. 长度: ...
  5. 5. 逆序后为: ... (切片)
  6. 6. 字符统计结果: ...(afsfdsf) a:1 f:3 s:2 d:1

代码

  1. while True:
  2. # 1.输入字符串(while循环)
  3. str = input('请输入字符串:')
  4. # 2.字符串长度小于31位,否则提示重新输入
  5. if len(str) >= 31:
  6. print('不能超过31位,请重新输入')
  7. continue
  8. # 跳出循环
  9. break
  10. print('输入正确')
  11. print("--------------------------------------------")
  12. # 3.您输入的字符串: ...
  13. print('您输入的字符串:%s' % str)
  14. # 4.长度: ...
  15. print('长度:%d' % len(str))
  16. # 5.逆序后为: ... (切片)
  17. newStr = str[::-1]
  18. print('逆序后为:%s' % newStr)
  19. # 6.字符统计结果: ...(afsfadsf) a:1 f:3 s:2 d:1
  20. # 1.字典 保存结果 {}
  21. resultDict = {}
  22. for ele in str:
  23. if ele not in resultDict:
  24. # 2. 如果字典中没有这个a, 把a添加进去 {'a':1}
  25. resultDict[ele] = 1
  26. else:
  27. # 3.字典中有a 将元素个数+1
  28. resultDict[ele] += 1
  29. print('字符统计结果:{}'.format(resultDict))
  30. print("--------------------------------------------")