python--字符串对象和

1、找出10000以内能被5或6整除,但不能被两者同时整除的数(函数)

def Divisible_by_5_6(x:int)->list:
    arr=[]
    for i in range(1,x+1):
        if (i % 5 == 0 or i % 6 ==0 ):
            if i % 5 == 0 and i % 6 ==0:
                continue  #利用continue跳过能被5和6整除的数
            else:
                arr.append(i)
    return(arr)
 
print(Divisible_by_5_6(1000))

2.写一个方法,计算列表所有偶数下标元素的和(注意返回值)

def ouxiabiao_sum(ls=[]):
	sum = 0
	for i in range(len(ls)):
		xiabiao = i
		if int(ls[xiabiao]) % 2 == 0:
			sum += xiabiao	
	return sum
 
 
n = int(input('请输入列表包含的元素个数:'))
ls = []
for i in range(1,n+1):
    item = input(f'请输入列表1的第{i}个元素:')
    ls.append(item)
 
print(f"列表所有偶数下标元素的和{ouxiabiao_sum(ls)}")

3、根据完整的路径从路径中分离文件路径、文件名及扩展名

import os
a=r'e:\\python\\primary\\di4zhou\\kejian\\day07笔记.md'
print(os.path.basename(a))
print(os.path.dirname(a))

4、根据标点符号对字符串进行分行

str = input("请输入一个字符串")
s = str.replace(",","\n")
print(s)

5、去掉字符串数组中每个字符串的空格

ls=["这是一个 带有" "空格的"    "字符串"]
ls1=str(ls)
ls1.strip()
print(f"去掉字符串数组中每个字符串的空格为{ls1}")
#会去掉字符串间的空格,在字符串中,空格也是符号,不会去掉

 

 

6、两个学员输入各自最喜欢的游戏名称,判断是否一致,如 果相等,则输出你们俩喜欢相同的游戏;如果不相同,则输 出你们俩喜欢不相同的游戏。

play1=str(input('玩家1请输入最喜欢的游戏名称:'))
play2=str(input('玩家2请输入最喜欢的游戏名称:'))
game=[]
if play1==play2:
	game=play1=play2
	print("你俩喜欢相同的游戏%s"%(game))
else:
	print("你俩喜欢不同的游戏")

 

 

7、上题中两位同学输入 lol和 LOL代表同一游戏,怎么办?

play1=str(input('玩家1请输入最喜欢的游戏名称:'))
play2=str(input('玩家2请输入最喜欢的游戏名称:'))
game=[]
if play1.upper()==play2.upper():     
	#upper 是大写方法,用lower小写方法也可以
	game =play2.upper() 
	print("你俩喜欢相同的游戏%s"%(game))
else:
	print("你俩喜欢不同的游戏")

 

 

8、让用户输入一个日期格式如“2008/08/08”,将 输入的日 期格式转换为“2008年-8月-8日”。

这个题不会,是抄的,后学到的

datetimes=input("请输入日期且格式如下:xx/xx/xx:")
dt1=datetimes.split("/")
print("输入的时间为:%s"%(dt1))
dt2="{}年-{}月-{}日".format(dt1[0],int(dt1[1]),int(dt1[2]))
print("输出为:%s"%(dt2))

 

 

9、接收用户输入的字符串,将其中的字符进行排序(升 序),并以逆序的顺序输出,“cabed”→"abcde"→“edcba”

sent=str(input("请输入英文:"))
ls=list(sent)
print("转换后的顺序为:%s"%(ls))
ls.sort()           #排序
s1=''.join(ls)
s3=s1[::-1]         #倒叙
#ls.reverse()
print("输出的顺序为:%s"%(s1))
print("输出的顺序为:%s"%(s3))

 

 

10、接收用户输入的一句英文,将其中的单词以反序输 出,“hello c java python”→“python java c hello”。

sent=str(input("请输入英文:"))
sent1=sent.split(" ")
sent2=sent1[::-1]           #不会改变圆sent1
#sent1.reverse()             #会改变原sent1
print('倒序后输出为:{}'.format(sent2))

s=" "
for i in range(len(sent2)):
	s+=(sent2[i]+" ")
print('倒序后输出为:{}'.format(s))

11、从请求地址中提取出用户名和域名 网易

 我不会,抄的,也不是很明白

#http://www.163.com?userName=admin&pwd=123456
s = "http://www.163.com?userName=admin&pwd=123456"
ls = s.split("/")
s1 = ls[2]
ls2 = s1.split("?")
print("域名是:{}".format(ls2[0]))

s1 = ls2[1]
ls3 = s1.split("&")

s1 = ls3[0]
ls4 = s1.split("=")
print("用户名是:{}".format(ls4[1]))
print("域名是:{},用户名是:{}".format(s[s.rfind("/")+1:s.find("?")],s[s.find("=")+1:s.find("&")]))

 

 

12、有个字符串数组,存储了10个书名,书名有长有短,现 在将他们统一处理,若书名长度大于10,则截取长度8的 子串并且最后添加“...”,加一个竖线后输出作者的名字。

ls=["1西游记","2我也不知道有什么书的名字很长","3基于ensp的路由和交换实验","4红楼梦","5python基础入门学不会啊啊","6活着","7三十六计","8线性代数","9JAVA","10聊斋志异"]
dir={"1西游记":"吴承恩","2我也不知道有什么书的名字很长":"123","3基于ensp的路由和交换实验":"李逵","4红楼梦":"曹雪芹","5python基础入门学不会啊啊":"456","6活着":"123","7三十六计":"789","8线性代数":"000","9JAVA":"68","10聊斋志异":"005"}
for i in range(0,len(ls)):
	s=ls[i]
	if len(s)>10:
		s = s[0:8]+"...|"+str(dir[ls[i]])
	ls[i]=s
print(ls)

 

13、让用户输入一句话,找出所有"呵"的位置。

sent=input("请输入一句话并且带呵呵:")
ls=[]
for i in range(0,len(sent)-1):
    if sent[i]=="呵" and sent[i+1] =="呵":
        ls.append(i)
print("该句中所有呵呵的位置为:{}".format(ls))

14、让用户输入一句话,判断这句话中有没有邪恶,如果有邪 恶就替换成这种形式然后输出,如:“老牛很邪恶”,输出后变 成”老牛很**”;

sentence = input("请输入一句话:")
print("替换后的句子为:{}".format(sentence.replace("邪恶","**")))

 

15、判断一个字符是否是回文字符串 "1234567654321" "上海自来水来自海上"

str = input('请输入一个字符串:')
if not str:
    print('请不要输入空字符串!')
    s = input('请重新输入一个字符串:')
arr = reversed(list(str))

if list(arr) == list(str):
    print('您所输入的字符串是回文字符串')
else:
    print('您所输入的字符串不是回文字符串')

16、过滤某个文件夹下的所有"xx.py"python文件

不会,思路是在磁盘过滤上进阶加后缀条件,没写出来 

用户管理系统的,密码加密

import hashlib      #导入哈希
users = []
while True:
    print("信息管理系统")
    print("-------------------------------------------------")
    print(" 1.账号注册")
    print(" 2.账号登录")
    print(" 3.退出系统")
    choice = int(input("请输入您的选择:"))
    if choice == 1:
        while True:
            print('欢迎进入注册界面!')
            print("----------------------------------")
            a = input('请输入您的账户:')
            b = input('请输入您的密码:')

            if a is None or len(a) == 0:
                print('对不起,请重新输入')
                continue
            flag = False
            for d in users:
                if d.get('a') == a:
                    print('对不起,用户名已经存在,请重新输入')
                    flag = True
                    break
            if flag:
                continue
            if len(b) < 1:
                print('密码长度不能小于1,请重新输入')
                continue
            #用md5加密,并进行盐值混淆
            md5 =hashlib.md5(b.encode("utf-8"))
            md5.update("exj&kao*".encode("utf-8"))
            pw = md5.hexdigest
            #user = {"username": a, "password": b}
            users.append(user)
            print("用户注册成功,请登录")
            print(users)
            break
    elif choice == 2:
        print('欢迎登录!')
        print("---------------------------------------")
        a = input('请输入您的账户:')
        b = input("请输入您的密码:")
        for user in users:
            if user['username'] == a and user.get('password') == b:
                print('登陆成功')
                break
            else:
                print('登陆失败,请重新输入')
    elif choice == 3:
        exit()
    else:
        print("输入有误。请重新输入!")
import hashlib
md5 =hashlib.md5(b.encode("utf-8"))
md5.update("exj&kao*".encode("utf-8"))
pw = md5.hexdigest

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值