# 字符串格式化符号说明
# %c 格式化字符及其ASCII码
# %s 格式化字符串
# %d 格式化整数
# %o 格式化无符号八进制数
# %x 格式化无符号十六进制数
# %X 格式化无符号十六进制数(大写)
# %f 格式化定点数,可指定小数点后的精度
# %e 用科学计数法格式化定点数
# %E 作用同%e,用科学计数法格式化定点数
# %g 根据值的大小决定使用%f或者%e
# %G 作用同%g,根据值的大小决定使用%F或者%E
#编写一个进制转换程序,十进制转换二进制可以用bin()
q = True
while q:
num = input('请输入一个整数(输入Q结束程序):')
if num.isdigit():
num = int(num)
print('十进制 -> 十六进制 : %d -> 0x%x' % (num, num))
print('十进制 -> 八进制 : %d -> 0o%o' % (num, num))
print('十进制 -> 二进制 : %d -> ' % num, bin(num))
elif num in ('Q','q'):
q = False
print("程序结束")
else:
continue
#现有一个列表[1, 2.1, 2.3, 'a', '1', True],写一个方法,计算里面各数字类型的和
#即遇到字符时,自动跳过。
def sum(x):
result=0
for each in x:
if isinstance(each,int) or isinstance(each,float):
print(each)
result+=each
else:
continue
return result
res=sum([1, 2.1, 2.3, 'a', '1', True])
print(res)
# s为字符串
# s.isalnum() 所有字符都是数字或者字母
# s.isalpha() 所有字符都是字母
# s.isdigit() 所有字符都是数字
# s.islower() 所有字符都是小写
# s.isupper() 所有字符都是大写
# s.istitle() 所有单词都是首字母大写,像标题
# s.isspace() 所有字符都是空白字符、\t、\n、\r
# 判断是整数还是浮点数
# a=123
# b=123.123
#
# >>>isinstance(a,int)
# True
# >>>isinstance(b,float)
# True
# >>>isinstance(b,int)
# False
#有一个学生成绩表2. score = [['小明', 85], ['小文', 80], ['小红', 65], ['小黄', 95]],
#根据学生名称查找成绩。
score = [['小明', 85], ['小文', 80], ['小红', 65], ['小黄', 95]]
name=input("请输入学生名字:")
# length=len(score)
# print(length)
# i=0
# stuScore=-1
# while i<length:
# if score[i][0] ==name:
# stuScore=score[i][1]
# print(name,"的成绩是:",stuScore)
# break
# else:
# i+=1
# if stuScore==-1:
# print("没有该学生")
IsFind = False
for each in score:
if name in each:
print(name + '的得分是:', each[1])
IsFind = True
break
if IsFind == False:
print('查找的数据不存在!')
# 密码安全性检查
# 低级密码要求:
# 1. 密码由单纯的数字或字母组成
# 2. 密码长度小于等于8位
# 中级密码要求:
# 1. 密码必须由数字、字母或特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)任意两种组合
# 2. 密码长度不能低于8位
# 高级密码要求:
# 1. 密码必须由数字、字母及特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)三种组合
# 2. 密码只能由字母开头
# 3. 密码长度不能低于16位
symbols = r'''`!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''
chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
nums = '0123456789'
passwd = input('请输入需要检查的密码组合:')
# 判断长度
length = len(passwd)
while (passwd.isspace() or length == 0) :
passwd = input("您输入的密码为空(或空格),请重新输入:")
if length <= 8:
flag_len = 1
elif 8 < length < 16:
flag_len = 2
else:
flag_len = 3
flag_con = 0
# 判断是否包含字母
for each in passwd:
if each in chars:
flag_con += 1
break
# 判断是否包含数字
for each in passwd:
if each in nums:
flag_con += 2
break
# 判断是否包含特殊字符
for each in passwd:
if each in symbols:
flag_con += 5
break
#密码只能以字母开头
pwdFirstStr=0
if passwd[0:1] in chars:
pwdFirstStr=1
print("pwdFirstStr",pwdFirstStr)
# 打印结果
while 1 :
#print("您的密码安全级别评定为:", end='')
# 低级密码要求:
# 1. 密码由单纯的数字或字母组成
# 2. 密码长度小于等于8位
if flag_len == 1 or flag_con in (1,2) :
print("您的密码安全级别评定为:低")
# 中级密码要求:
# 1. 密码必须由数字、字母或特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)任意两种组合
# 2. 密码长度不能低于8位
elif flag_len in (2,3) or flag_con in (3,6,7):
print("您的密码安全级别评定为:中")
# 高级密码要求:
# 1. 密码必须由数字、字母及特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)三种组合
# 2. 密码只能由字母开头
# 3. 密码长度不能低于16位
elif flag_len==3 and flag_con ==8 and pwdFirstStr==1:
print("您的密码安全级别评定为:高")
print("请继续保持")
break
else:
print("输入的密码不符合格式要求!")
print("请按以下方式提升您的密码安全级别:\n\
\t1. 密码必须由数字、字母及特殊字符三种组合\n\
\t2. 密码只能由字母开头\n\
\t3. 密码长度不能低于16位'")
break
往期笔记