练习题5

以下都为Python

21.不借助任何变量交换两个变量的值

只能交换两个int型

str0=input("请输入,以逗号隔开:")
str1,str2=str0.split(",")
a=int(str1)
b=int(str2)
a=b-a
b=b-a
a=b+a
print(a,b)


#10,12
#12 10

22.猜数游戏

自己定义一个范围,自动生成在此范围内的一个数,猜这个数

import random

i=int(input("请输入下界:"))
j=int(input("请输入上界:"))
x=random.randrange(i,j)
print("随机数生成好了!")
num=int(input("请输入你猜的数:"))
count=0

while num!=x:
    count+=1
    if num<i or num>j:
        print("你的输入有误!")
    elif num>x:
        print("大了哦!")
    else:
        print("小了哦!")
    num=int(input("请再次输入:"))
if num==x:
    print("恭喜你答对啦!")
    print("你共猜了",str(count),"次哦!")


#请输入下界:0
#请输入上界:100
#随机数生成好了!
#请输入你猜的数:102
#你的输入有误!
#请再次输入:50
#小了哦!
#请再次输入:60
#小了哦!
#请再次输入:70
#大了哦!
#请再次输入:69
#大了哦!
#请再次输入:68
#恭喜你答对啦!
#你共猜了 5 次哦!

23.周期串问题

 

       如果一个字符串可以由某个长度为k的字符串重复多次得到,我们说该串以k为周期。例如,abcabcabcabc以3为周期(注意,它也可以6和12为周期,结果取最小周期3)。字符串的长度小于等于100,由调用者保证。

str0=input("请输入:")
m=len(str0)
for i in range(m-1) :
    for j in range(m-1) :
        for k in range(100) :
            if str0==str0[i:j]*k :
                n=j-i
                break
print(n)

#为了看清循环的子序列,我加了空格,6是'abcde '的长度
#请输入:abcde abcde abcde abcde
#6
#Press any key to continue . . .

24.按要求分解字符,输入字符串,选择输出格式,如果大于字符串的长度,就补0

while 1:
    str0=input("请输入字符串:")
    str1=input("请输入输出字符串的位数:")
    m=len(str0)
    n=int(str1)
    if n<m :
        str2=str0[:n]
        print(str2)
    elif n==m:
        print(str0)
    else :
        str3=str0+'0'*(n-m)
        print(str3)

#请输入字符串:abcdef
#请输入输出字符串的位数:10
#abcdef0000
#请输入字符串:abcdef
#请输入输出字符串的位数:4
#abcd
#请输入字符串:

25.密码转换,输入明文,解出真正的密码

密码转换规则为:

  • 输入为小写字母:按照手机九键输入法,1-1,abc-2,def-3,ghi-4,jkl-5,mno-6,pqrs-7,tuv-8,wxyz-9,0-0,
  • 输入为大写字母:转换为相应的小写字母的后面一位小写字母,比如X-y,A-b,Z-a
  • 输入为数字:原样输出
str0=input("请输入密码:")
str1=""
for i in str0 :
    if i>='0' and i<='9':
        str1=str1+i
    if i=='a' or i=='b' or i=='c':
        str1=str1+'2'
    if i=='d' or i=='e' or i=='f':
        str1=str1+'3'
    if i=='g' or i=='h' or i=='i':
        str1=str1+'4'
    if i=='j' or i=='k' or i=='l':
        str1=str1+'5'
    if i=='m' or i=='n' or i=='o':
        str1=str1+'6'
    if i=='p' or i=='q' or i=='r' or i=='s':
        str1=str1+'7'
    if i=='t' or i=='u' or i=='v':
        str1=str1+'8'
    if i=='w' or i=='x' or i=='y' or i=='z':
        str1=str1+'9'
    if i>='A' and i<='Z':
        i=chr(ord(i.lower())+1)
        str1=str1+i
print("解码后的密码是:",str1)

#请输入密码:YUANzhi1987
#解码后的密码是: zvbo9441987
#Press any key to continue . . .

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值