python第6-7轮作业--字符串,模块

1.求第n项的斐波那契数列的值(n>=1)

def number(figure):
    list1=[1]
    flag=0
    if figure==2:
        list1=[1,1]
    elif figure>2:
        list1 = [1, 1]
        for i in range(2,figure):
            x=list1[len(list1)-1] + list1[len(list1)-2]
            list1.append(x)
    print(list1)


figure=int(input("请输入n(n>=1):"))
number(figure)

2. 将字母全部转换为大写或小写

def letter():
    a="abaafERGG"
    print(a.lower())
    print(a.upper())

letter()

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

def judge(user1,user2):
    if user1==user2:
        print("你们俩喜欢相同的游戏")
    else:
        print("你们俩喜欢不相同的游戏")
    
    
user1=input("输入喜欢的游戏名字:")
user2=input("输入喜欢的游戏名:")
judge(user1,user2)

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

def judge(user1,user2):
    if user1.upper()==user2.upper():
        print("你们俩喜欢相同的游戏")
    else:
        print("你们俩喜欢不相同的游戏")


user1=input("输入喜欢的游戏名字:")
user2=input("输入喜欢的游戏名:")
judge(user1,user2)

5. 给定一个包含n+1个整数的数组nums,其数字在1到n之间(包含1和n),可知至少存在一个重复的整数,假设只有一个重复的整数,请找出这个重复的数

def finder():
    nums=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,12]
    nums.sort()
    for i in range(len(nums)-1):
        if nums[i]==nums[i+1]:
            print(nums[i])

finder()

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

def judge():
    figure=[]
    for i in range(1,10001):
        figure.append(i)
    for i in figure:
        if i % 5 == 0 or i % 6 == 0:
            if i % 30 != 0:
                print(i,end=" ")

judge()

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

def judge(figure):
    flag=0
    for i in range(len(figure)):
        if figure[i]%2==0:
            flag+=i
    return flag


user=input("请输入多个数字:")
figure=[]
for i in user:
    i=int(i)
    figure.append(i)
flag=judge(figure)
print(flag)

8. 请使用函数完成选择、冒泡、插入三种排序

#选择

# 冒泡
def bubbling():
    figure=[4,8,6,45,498,65,32,75,47,84,456,31,17,18,13]
    for i in range(len(figure)):
        for j in range(i,len(figure)):
            if figure[i]>=figure[j]:
                figure[i],figure[j]=figure[j],figure[i]
    print(figure)

bubbling()

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

import os.path

def file(user):
    print("文件路径:",os.path.abspath(user))
    print("文件名:", os.path.basename(user))
    a, b = os.path.splitext(user)
    print("后缀名:",b)

user=input("请输入文件路径:")
file(user)

10. 获取字符串中汉字的个数

def figure(user):
    dicter="qwertyuiopasdfghjklzxcvbnm123456789"
    flag=0
    for i in user:
        if i not in dicter:
            flag+=1
    print(flag)


user=input("请输入字符串(含汉语):")
figure(user)

11. 将字母全部转换为大写或小写

def judge(user,n):
    if n==1:
        print(user.upper())
    elif n==2:
        print(user.lower())


user=input("请输入字符串:")
n=int(input("1为大写,2为小写:"))
judge(user,n)

12. 根据标点符号对字符串进行分行

def judge(user):
    dicter=",.,。`·:;/、?|\\*"
    for i in user:
        if i in dicter:
            flag=i
    print(user.split(flag))


user=input("请输入字符串:")
judge(user)

13. 去掉字符串数组中每个字符串的空格

def judge(n):
    figure=[]
    flag=0
    for i in range(n):
        user=input("请输入字符串:")
        figure.append(user)
    print(figure)
    for i in range(len(figure)):
        for j in figure[i]:
            if j==" ":
                flag+=1     # 判断有一个字符串里有几个“ ”
        for j in range(flag):   # 字符串里有多少空格个就删除多少次
            figure[i]=list(figure[i])
            figure[i].remove(" ")
            figure[i]="".join(figure[i])
        flag=0
    print(figure)


n=int(input("请输入字符串个数:"))
judge(n)

14. 随意输入你心中想到的一个书名,然后输出它的字符串长度。 (len()属性:可以得字符串的长度)

def judge(n):
    print(len(n))


user=input("请输入书名:")
judge(user)

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

def judge(student1,student2):
    if student1==student2:
        print("你们俩喜欢相同的游戏")
    else:
        print("你们俩喜欢不相同的游戏")


student1=input("玩家一请输入游戏名:")
student2=input("玩家二请输入游戏名:")
judge(student1,student2)

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

两位同学输入 lol和 LOL代表同一游戏,怎么办?

def judge(student1,student2):
    if student1.upper()==student2.upper():
        print("你们俩喜欢相同的游戏")
    else:
        print("你们俩喜欢不相同的游戏")


student1=input("玩家一请输入游戏名:")
student2=input("玩家二请输入游戏名:")
judge(student1,student2)

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

import time

def transition(user):
    date=time.strptime(user, "%Y/%m/%d")
    print(f"{date.tm_year}年-{date.tm_mon}月-{date.tm_mday}日")


user=input("请输入日期(格式如2008/08/08):")
transition(user)

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

def transition(user):
    user=list(user)
    user.sort()
    user.reverse()
    user="".join(user)
    print(user)


user=input("请输入字符串:")
transition(user)

19. 接收用户输入的一句英文,将其中的单词以反序输出,“hello c sharp”→“sharp c hello”。

def transition(user):
    user=user.split(" ")# 以空格作为分隔符,分割字符串
    user.reverse()
    for i in range(1,len(user)+1,2):    # 在user的偶数位插入空格
        user.insert(i," ")
    user="".join(user)
    print(user)


user=input("请输入字符串:")
transition(user)

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

def judge():
    name=["烂柯棋源|真费事","我一个史莱姆吊打巨龙很合理吧|三凤11","大王饶命|会说话的肘子","穿越诸天从大王饶命开始|丘大王的娘","大奉打更人|买报小郎君",\
          "夜的命名术|会说话的肘子","不科学御兽|轻泉流响","完美世界|辰东","遮天|辰东","逆天邪神|火星引力"]
    for i in range(0,10):
        if name[i].find("|")>10:
            for j in range(8,name[i].find("|")):
                name[i]=list(name[i])
                name[i].pop(8)      # 只能写8不能写j,每一次循环后列表顺序会变,得固定一个位置写。
            name[i].insert(8,"...")
            name[i] = "".join(name[i])
    print(name)


judge()

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

def judge(user):
    user = list(user)
    for i in range(len(user)):
        if user[i]=="呵":
            print(i,end=",")
    user="".join(user)


user=input("请输入中文语句:")
judge(user)

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

def judge(user):
    user = list(user)
    for i in range(len(user)-1):
        if user[i]==user[i+1]:
            print(i,end=",")
    user="".join(user)


user=input("请输入中文语句:")
judge(user)

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

def judge(user):
    print(user.replace("邪恶","**"))


user=input("请输入中文语句:")
judge(user)

24.如何判断一个字符串是否为另一个字符串的子串

def judge(user1,user2):
    #判断user1是否为user2的子串
    if user2.find(user1) != -1:
        print("user1是为user2的子串")
    else:
        print("user1不为user2的子串")


user1=input("请user1输入中文语句:")
user2=input("请user2输入中文语句:")
judge(user1,user2)

25.如何验证一个字符串中的每一个字符均在另一个字符串中出现过

双层循环
def judge(user1,user2):
    #判断user1中的每一个字符是否在user2中出现过
    user2=set(user2)
    user2="".join(user2)
    flag=0
    for i in user1:
        for j in user2:
            if i==j:
                flag+=1
    if flag==len(user1):
        print("user1中的每一个字符在user2中出现过")
    else:
        print("user1中的有字符不在user2中出现过")


user1=input("请user1输入中文语句:")
user2=input("请user2输入中文语句:")
judge(user1,user2)

26.如何随机生成无数字的全字母的字符串

import random

def sentence(n):
    figure=[]
    for i in range(n):
        letter = random.choice("qwertyuiopasdfghjklzxcvbnm")
        figure.append(letter)
    figure="".join(figure)
    print(figure)


n=int(input("请输入字符串个数:"))
sentence(n)

27.如何随机生成带数字和字母的字符串

import random

def sentence(n):
    figure=[]
    for i in range(n):
        letter = random.choice("qwertyuiopasdfghjklzxcvbnm1234567890")
        figure.append(letter)
    figure="".join(figure)
    print(figure)


n=int(input("请输入字符串个数:"))
sentence(n)

28.如何判定一个字符串中既有数字又有字母

def judge(sentence):
    if sentence.isalnum()==True and sentence.isdigit()==False and sentence.isalpha()==False:
        print("字符串中既有数字又有字母")
    else:
        print("未通过判断")


sentence=input("请输入字符串:")
judge(sentence)

29.字符串内的字符排序(只按字母序不论大小写)

def sorter(sentence):
    sentence=list(sentence.lower())
    sentence.sort()
    sentence="".join(sentence)
    print(sentence)
    

sentence=input("请输入多个字母(不论大小写):")
sorter(sentence)

30.判断一个字符是否是回文字符串(面试题)

"1234567654321"
"上海自来水来自海上"
def judge(sentence):
    if sentence==sentence[::-1]:
        print("是回文字符串")
    else:
        print("不是回文字符串")


sentence=input("请输入字符串:")
judge(sentence)

*31. 小明考试非常好,妈妈为了奖励小明,给一对刚刚出生的兔子,兔子可以经过四个月,可以长大称为成年的兔子,可以生育新的兔子,假设成年兔子,每个月生一对小兔子,问,第n个月共有多少对兔子(加上兔子不死)

def rubbit(nums):
	if nums<5:
		return 1
	return rubbit(nums-1)+rubbit(nums-4)
def main():
    nums = int(input("请输入共养几个月: "))
    result = rubbit(nums)
    print("结果为%d"%result)
if __name__=='__main__':
    main()


32. 从请求地址中提取出用户名和域名

http://www.163.com?userName=admin&pwd=123456



*33. 磁盘遍历

import os
from os import path


def scanner_file(url):
	"""
		指定path路径,遍历该路径下所有文件和文件夹
		将所有文件都打印显示出来(显示绝对路径)
	"""
	dir_list = os.listdir(url)
	for filename in dir_list:
		# real_url = url + os.sep + filename
		real_url = path.join(url, filename)
		
		if path.isfile(real_url):
			print(path.abspath(real_url)) and real_url.endswith(".py")
		elif path.isdir(real_url):
			scanner_file(real_url)
if __name__ == '__main__':
	scanner_file("E:/")


*34. 某个人进入如下一个棋盘中,要求从左上角开始走,最后从右下角出来(要求只能前进,不能后退),

问题:共有多少种走法?

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

checkerboard = [
	[0, 0, 0, 0, 0, 0, 0, 0]
	[0, 0, 0, 0, 0, 0, 0, 0]
	[0, 0, 0, 0, 0, 0, 0, 0]
	[0, 0, 0, 0, 0, 0, 0, 0]
	[0, 0, 0, 0, 0, 0, 0, 0]
	[0, 0, 0, 0, 0, 0, 0, 0]
]
def board(arr):
	if arr is None:
		return 0
	if len(arr) == 1 and len(arr[0]) == 1:
		return 1
	for i in range(len(arr[0])):
		arr[0][i] = 1
	for i in range(len(arr)):
		arr[i][0] = 1
	for i in range(1, len(arr)):
		for j in range(1, len(arr[0])):
			arr[i][j] = arr[i - 1][j] + arr[i][j - 1]
 
	return arr[len(arr) - 1][len(arr[0]) - 1]
if __name__ == '__main__':
	ls = [
		[0, 0, 0, 0, 0, 0, 0, 0],
		[0, 0, 0, 0, 0, 0, 0, 0],
		[0, 0, 0, 0, 0, 0, 0, 0],
		[0, 0, 0, 0, 0, 0, 0, 0],
		[0, 0, 0, 0, 0, 0, 0, 0],
	]
	count = board(ls)
	print(f"从左上角开始走,到右下角,共有{count}种走法")


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值