我正在进行一项任务,要求我更改下面的代码,以便第4行使用str.isalnum,第5-7行只使用str.replace使用一行。
s = 'p55w-r@d'
result = ''
for c in s:
if(c not in 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'):
result += '*'
else:
result += c
print(result)
这是我到目前为止所做的:
s = 'p55w-r@d'
result = ''
for c in s:
if(c.isalnum() == False):
result += c.replace(c,'*')
print(result)
第二个代码的输出需要等于代码1的输出:
p55w*r*d
答案 0 :(得分:1)
只需添加其他部分即可完成:
s = 'p55w-r@d'
result = ''
for c in s:
if(c.isalnum() == False):
result += c.replace(c,'*')
else:
result +=c
print(result)
p55w*r*d
答案 1 :(得分:0)
我知道如何在2个字符串中使用相同的内容:
s = 'p55w-r@d'
print(''.join(map(lambda x: x if x.isalnum() else '*', s)))
OUT:
p55w*r*d
答案 2 :(得分:0)
在仍然有意义的情况下,最接近你的作业要求的是:
s = 'p55w-r@d'
result = s # Note the change here
for c in set(s): # set(..) is not strictly necessary, but avoids repeated chars
if not c.isalnum():
result = result.replace(c, '*')
答案 3 :(得分:0)
你可以在等于之后使用if else。
msg = MIMEMultipart()
msg['Subject'] = 'Bewegung erkannt!'+' '+timestr
msg['From'] = 'surveillance.picam@gmail.com'
msg['To'] = 'fuchsfan23@gmail.com'
body = email.mime.Text.MIMEText("""Bewegung erkannt! Hier ist der Eindrinling!""")
msg.attach(body)
directory = '/home/pi/Pictures/RaspCam/bild_{}.jpg'.format(timestr)
spl_dir=directory.split('/')
filename=spl_dir[len(spl_dir)-1]
spl_type=directory.split('.')
type=spl_type[len(spl_type)-1]
fp=open(directory,'rb')
att = email.mime.application.MIMEApplication(fp.read(),_subtype=type)
fp.close()
att.add_header('Content-Disposition','attachment',filename=filename)
msg.attach(att)
s = smtplib.SMTP('smtp.gmail.com:587')
s.starttls()
s.login('mailaddress1','passwd')
s.sendmail('mailaddress1','mailaddress2', msg.as_string())
s.quit()