鱼C论坛

 找回密码
 立即注册
查看: 1256|回复: 7

[已解决]第14课课后作业 密码程度

[复制链接]
发表于 2018-3-26 20:43:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
请教各位鱼友,下面程序中第20行的 replace 为何不起作用呢?谢谢啦

  1. #from math import maketrans
  2. print("该程序用于检测您的密码安全程度\n")
  3. word = input("请输入至少一位的密码:")
  4. n = len(word)

  5. if word.isalnum():
  6.     if n <= 8:
  7.         print("您的密码属于低级密码")
  8.     else:
  9.         print("不属于此系统评判范围:1")
  10. else:
  11.     spec = '~!@#$%^&*()_=-/,.?<>;:[]{}|\\'
  12.     n_s = len(spec)
  13.     word1 = word[:]
  14.     w_s = 0
  15.     for k in range(0,n_s):
  16.         if spec[k] in word1:
  17.             w_s += 1
  18.             word1.replace(spec[k],'1')
  19. #           table = maketrans(spec[k],'1')
  20. #           word1.translate(table)
  21.             print(word1)
  22.     if w_s == 2 and word1.isalnum():
  23.         if n >= 8:
  24.             print("您的密码属于中级密码")
  25.         else:
  26.             print("不属于此系统评判范围:2")
  27.     elif w_s == 3 and word1.isalnum():
  28.         w_1 = word[0]
  29.         if n >= 16 and w_1.isalpha():
  30.             print("您的密码属于中级密码")
  31.         else:
  32.             print("不属于此系统评判范围:3")
  33.     else:
  34.         print("不属于此系统评判范围:4")
  35.    
  36.    
  37.    
复制代码
最佳答案
2018-3-26 20:47:07
replace是生成新字符串,而不是修改原有字符串。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-26 20:47:07 | 显示全部楼层    本楼为最佳答案   
replace是生成新字符串,而不是修改原有字符串。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-26 21:11:52 | 显示全部楼层
现在好了,谢谢啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-26 21:13:32 | 显示全部楼层
冬雪雪冬 发表于 2018-3-26 20:47
replace是生成新字符串,而不是修改原有字符串。

能再请教下为什么python3.5 用 maketrans 会报错说没有这个方法呢?谢谢啦!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-26 21:29:38 | 显示全部楼层
木木子_666 发表于 2018-3-26 21:13
能再请教下为什么python3.5 用 maketrans 会报错说没有这个方法呢?谢谢啦!

maketrans是字符串方法,需要字符串.maketrans方式运行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-26 21:55:54 | 显示全部楼层
本帖最后由  木木子_666 于 2018-3-26 21:57 编辑
冬雪雪冬 发表于 2018-3-26 21:29
maketrans是字符串方法,需要字符串.maketrans方式运行


您好,这个方法好像不能载入,可能是版本问题,谢谢啦
1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-26 22:08:25 | 显示全部楼层
木木子_666 发表于 2018-3-26 21:55
您好,这个方法好像不能载入,可能是版本问题,谢谢啦

这样用:
  1. str1 = 'abc'
  2. trans = str.maketrans({'a':'1','b':'2'})
  3. print(str1.translate(trans))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-26 22:44:17 | 显示全部楼层

太感谢啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-17 13:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表