Python编程练习(二):11 - 20

零基础入门学Python系列内容对应的所有编程练习题目 → \rightarrow Python编程练习题目汇总

  1. 编写程序:对密码进行安全性检查。
# 密码安全性检查代码

# 低级密码要求:
# 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%&*
  您的密码安全级别评定为: 高
  请继续保持
  >>>

  1. 编写程序:进行进制转换。
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
  >>>

  1. 编写程序:查找系统中某个用户的成绩。
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
  >>>

  1. 编写程序:计算并返回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
  >>>

  1. 编写程序:计算并返回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
  >>>

  1. 编写程序:求参数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
  >>>

  1. 编写程序:求参数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
  >>>

  1. 编写程序:将十进制转换为二进制。
# 编写一个将十进制转换为二进制的函数,要求采用“除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
  >>>

  1. 编写程序:将十进制转换为二进制(递归实现)。
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
  >>>

  1. 编写程序:统计一个长度为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 次
  >>>

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值