1.求第n项的斐波那契数列的值(n>=1)
def number(figure):list1=[1]flag=0if 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=0for i in range(len(figure)):if figure[i]%2==0:flag+=ireturn flaguser=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.pathdef 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=0for i in user:if i not in dicter:flag+=1print(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=iprint(user.split(flag))user=input("请输入字符串:")
judge(user)
13. 去掉字符串数组中每个字符串的空格
def judge(n):figure=[]flag=0for 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=0print(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 timedef 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=0for i in user1:for j in user2:if i==j:flag+=1if flag==len(user1):print("user1中的每一个字符在user2中出现过")else:print("user1中的有字符不在user2中出现过")user1=input("请user1输入中文语句:")
user2=input("请user2输入中文语句:")
judge(user1,user2)
26.如何随机生成无数字的全字母的字符串
import randomdef 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 randomdef 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 1return 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 pathdef scanner_file(url):"""指定path路径,遍历该路径下所有文件和文件夹将所有文件都打印显示出来(显示绝对路径)"""dir_list = os.listdir(url)for filename in dir_list:# real_url = url + os.sep + filenamereal_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 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 0checkerboard = [[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 0if len(arr) == 1 and len(arr[0]) == 1:return 1for i in range(len(arr[0])):arr[0][i] = 1for i in range(len(arr)):arr[i][0] = 1for 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}种走法")