python练习6.16

 题一:编写一个接受句子并计算字母和数字的程序。假设为程序提供了以下输入:
Hello world! 123
然后,输出应该是:
字母10
数字3

x=input("请输入")
b={"数字":0,"字母":0}
for i in x :
    if i.isdigit():
        b["数字"]+=1
    elif i.isalpha():
        b["字母"]+=1
for key,val in b.items():
 print (key,val)

 题二:

题:编写一个程序,计算a + aa + aaa + aaaa的值,给定的数字作为a的值。假设为程序提供了以下输入:9     。然后,输出应该是: 11106

a=int(input("请输入一个数字"))
b=[]
c="1"
for i in range(4):
 b.append(int(c)*a)
 c+="1"
print(sum(b))

 当list是一个空的,没有一个元素,进行赋值就会出现错误

所以得用append函数加,刚才一直在用=(赋值)查了查,才知道

题三:

题:网站要求用户输入用户名和密码进行注册。编写程序以检查用户输入的密码的有效性。
以下是检查密码的标准:
1. [a-z]之间至少有1个字母
2. [0-9]之间至少有1个数字
1. [A-Z]之间至少有一个字母
3. [$#@]中至少有1个字符
4.最短交易密码长度:6
5.交易密码的最大长度:12
您的程序应接受一系列逗号分隔的密码,并将根据上述标准进行检查。将打印符合条件的密码,每个密码用逗号分隔。
例:如果以下密码作为程序的输入:

ABd1234@1,a F1#,2w3E*,2We3345
然后,程序的输出应该是:

ABd1234 @ 1

import re
value=[]
password=input("输入你的密码").split(",")
for p in password:
    if  len(p)<6 or len(p)>12:
        continue
    if  not re.search("[a-z]",p):
        continue
    elif  not re.search("[A-Z]",p):
        continue
    elif  not re.search("[0-9]",p):
        continue
    elif not  re.search("[$#@]",p):
        continue
    elif not  re.search("[a-z]",p):
        continue
    value.append(p)
print("".join(value))

原本按习惯用re.match然后找不到,看了看他的用search就盘活了。

match只找开头,开头没有就没有,search全局找。

你可能感兴趣的:(python练习6.16)