零基础入门学Python系列内容对应的所有编程练习题目 → \rightarrow →Python编程练习题目汇总。
- 编写程序:对密码进行安全性检查。
# 密码安全性检查代码
# 低级密码要求:
# 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 symbols:
flag_con += 1
break
# 判断是否包含字母
for each in passwd:
if each in chars:
flag_con += 1
break
# 判断是否包含数字
for each in passwd:
if each in nums:
flag_con += 1
break
# 打印结果
while 1 :
print(" 您的密码安全级别评定为: ", end='')
if flag_len == 1 or flag_con == 1 :
print(" 低")
elif flag_len == 2 or flag_con == 2 :
print(" 中")
else :
print(" 高")
print(" 请继续保持 ")
break
print(" 请按以下方式提升您的密码安全级别: \n\
\t1. 密码必须由数字、字母及特殊字符三种组合 \n\
\t2. 密码只能由字母开头 \n\
\t3. 密码长度不能低于 16 位'")
break
>>>
请输入需要检查的密码组合: 123456
您的密码安全级别评定为: 低
请按以下方式提升您的密码安全级别:
1. 密码必须由数字、字母及特殊字符三种组合
2. 密码只能由字母开头
3. 密码长度不能低于 16 位’
请输入需要检查的密码组合: abc123456def
您的密码安全级别评定为: 中
请按以下方式提升您的密码安全级别:
1. 密码必须由数字、字母及特殊字符三种组合
2. 密码只能由字母开头
3. 密码长度不能低于 16 位’
请输入需要检查的密码组合: abc123def456ghi789%&*
您的密码安全级别评定为: 高
请继续保持
>>>
- 编写程序:进行进制转换。
q = True
while q:
num = input(' 请输入一个整数 (输入 Q 结束程序 ):')
if num != 'Q':
num = int(num)
print(' 十进制 -> 十六进制 : %d -> 0x%x' % (num, num))
print(' 十进制 -> 八进制 : %d -> 0o%o' % (num, num))
print(' 十进制 -> 二进制 : %d -> ' % num, bin(num))
else:
q = False
>>>
请输入一个整数 (输入 Q 结束程序 ):38
十进制 -> 十六进制 : 38 -> 0x26
十进制 -> 八进制 : 38 -> 0o46
十进制 -> 二进制 : 38 -> 0b100110
请输入一个整数 (输入 Q 结束程序 ):89
十进制 -> 十六进制 : 89 -> 0x59
十进制 -> 八进制 : 89 -> 0o131
十进制 -> 二进制 : 89 -> 0b1011001
请输入一个整数 (输入 Q 结束程序 ):1000
十进制 -> 十六进制 : 1000 -> 0x3e8
十进制 -> 八进制 : 1000 -> 0o1750
十进制 -> 二进制 : 1000 -> 0b1111101000
请输入一个整数 (输入 Q 结束程序 ):Q
>>>
- 编写程序:查找系统中某个用户的成绩。
name = input(' 请输入待查找的用户名: ')
score = [['迷途', 85], ['黑夜', 80], ['小布丁', 65], ['福禄娃娃', 95], ['怡静', 90]]
IsFind = False
for each in score:
if name in each:
print(name + '的得分是:', each[1])
IsFind = True
break
if IsFind == False:
print(' 查找的数据不存在! ')
>>>
请输入待查找的用户名: 小明
查找的数据不存在!
请输入待查找的用户名: 迷途
迷途的得分是: 85
>>>
- 编写程序:计算并返回x的y次幂的值。
# 编写一个函数power()模拟内建函数pow() ,即power(x, y)为计算并返回x的y次幂的值
def power(x,y):
result = 1
for i in range(y):
result *= x
return result
x = int(input('请输入底数x:'))
y = int(input('请输入指数y:'))
print(power(x,y))
>>>
请输入底数x:2
请输入指数y:3
8
>>>
- 编写程序:计算并返回x的y次幂的值(递归实现)。
def power(x,y):
if y == 0:
result = 1
else:
result = x*power(x,y-1)
return result
x = int(input('请输入底数x:'))
y = int(input('请输入指数y:'))
print(power(x,y))
>>>
请输入底数x:2
请输入指数y:3
8
>>>
- 编写程序:求参数x和参数y的最大公约数。
# 编写一个函数,利用欧几里得算法求最大公约数,例如gcd(x, y)返回值为参数x和参数y的最大公约数
def gcd(x, y):
while y:
t = x % y
x = y
y = t
return x
x = int(input('请输入第一个数x:'))
y = int(input('请输入第二个数y:'))
print(gcd(x, y))
>>>
请输入第一个数x:100
请输入第二个数y:35
5
>>>
- 编写程序:求参数x和参数y的最大公约数(递归实现)。
def gcd(x,y):
if y == 0:
return x
else:
return gcd(y,x%y)
x = int(input('请输入第一个数x:'))
y = int(input('请输入第二个数y:'))
print(gcd(x, y))
>>>
请输入第一个数x:100
请输入第二个数y:35
5
>>>
- 编写程序:将十进制转换为二进制。
# 编写一个将十进制转换为二进制的函数,要求采用“除2取余”的方式,结果与调用 bin()一样返回字符串形式。
def Dec2Bin(dec):
temp = []
result = ''
while dec:
quo = dec % 2
dec = dec // 2
temp.append(quo)
while temp:
result += str(temp.pop())
return result
x = int(input('请输入一个十进制数:'))
print(Dec2Bin(x))
>>>
请输入一个十进制数:10
1010
请输入一个十进制数:28
11100
>>>
- 编写程序:将十进制转换为二进制(递归实现)。
def Bin(n):
temp = ''
if n:
temp = Bin(n//2)
temp += str(n%2)
return temp
else:
return temp
num = int(input('请输入一个十进制数:'))
print(num,'-->',Bin(num))
>>>
请输入一个十进制数:10
10 --> 1010
请输入一个十进制数:28
28 --> 11100
>>>
- 编写程序:统计一个长度为2的子字符串在另一个字符串中出现的次数。
# 编写一个函数findStr(),该函数统计一个长度为2的子字符串在另一个字符串中出现的次数。
def findStr(desStr,subStr):
count = 0
length = len(desStr)
if subStr not in desStr:
print("在目标字符串中未找到字符串!")
else:
for each1 in range(length - 1):#因为你找的是长度2的字符串,所以length减了1
if desStr[each1] == subStr[0]:
if desStr[each1+1] == subStr[1]:
count += 1
print('字符串在目标字符串中共出 %d 次' % count)
desStr = input('请输入目标字符串:')
subStr = input('请输入子字符串(两个字符):')
findStr(desStr,subStr)
>>>
请输入目标字符串:You cannot improve your past, but you can improve your future.Once time is wasted, life is wasted.
请输入子字符串(两个字符):im
字符串在目标字符串中共出 3 次
>>>