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}种走法")