01.求第n项的斐波那契数列值
#求第n项的斐波那契数列值
#1、1、2、3、5、8、13、21、34……
#F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)
def shulie ():
print("求第n项的斐波那契数列值:",end="")
x=eval(input(""))
list = [1,1]
if x ==1 or x == 2:
print(1)
else:
for i in range(3,x+1):
F = list[i-3] + list[i-2]
list.append(F)
print(F)
def call ():
while True:
shulie()
call()
02.青蛙跳楼梯,每一次只能跳一个台阶或者两个台阶,注意,不允许倒退, 如果第N个台阶,请问有多少种跳法:
#青蛙跳楼梯,每一次只能跳一个台阶或者两个台阶,注意,不允许倒退,如果第N个台阶,请问有多少种跳法:
# 0个台阶 : 0种跳法 0--0
# 1个台阶 : 1种跳法 1--1
# 2个台阶 : 2种跳法 2--2
# 3个台阶 : 4种跳法 3--3
# 4个台阶 : 6种跳法 4--5
# 5个台阶 : 8种跳法 5--8
# F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)
# 1、1、2、3、5、8、13、21、34……
def jump ():
list_1 = [1,1,2]
print("青蛙跳楼梯,每一次只能跳一个台阶或者两个台阶,注意,不允许倒退,如果第N个台阶,请问有多少种跳法")
num = int(input("请输入台阶数:"))
if num == 0 or num == 1 or num == 2:
print(f"{num}级台阶有{num}种跳法")
else:
for i in range(3,num+1):
F = list_1[i-1] + list_1[i-2]
list_1.append(F)
print(f"{num}级台阶有{F}种跳法")
print()
def call ():
while True:
jump()
call()
03.小明高考结束,成绩非常理想,父母为了奖励他,为他买了一对刚刚出生的兔子, 刚刚出生的兔子经过4个月成长为成年的兔子,就可以生小兔子, 假设成年兔子每月出生一对小兔子,问,第N月,共有多少对兔子, 假设所有不会死亡。
"""
小明高考结束,成绩非常理想,父母为了奖励他,为他买了一对刚刚出生的兔子,
刚刚出生的兔子经过4个月成长为成年的兔子,就可以生小兔子,
假设成年兔子每月出生一对小兔子,问,第N月,共有多少对兔子,
假设所有不会死亡。
"""
#第01个月:2-----------------------------------------2
#第02个月:2-----------------------------------------2
#第03个月:2-----------------------------------------2
#第04个月:2-----------------------------------------2
#第05个月:2 2---------------------------------------4
#第06个月:2 2 2-------------------------------------6
#第07个月:2 2 2 2-----------------------------------8
#第08个月:2 2 2 2 2---------------------------------10
#第09个月:2 2 2 2 2 2-------------------------------12
#
#第10个月:2 2 2 2 2 2 2 2---------------------------16
#第11个月:2 2 2 2 2 2 2 2 2 2 2---------------------22
#第12个月:2 2 2 2 2 2 2 2 2 2 2 2 2 2 2-------------30
#第13个月:2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2---40
#第14个月: 52
#n*2+3n+12
def rabbit ():
i = int(input("请输入月份:"))
if 1 <= i <= 4:
print(f"第{i}月共有1对兔子")
print()
if 4 < i < 10 :
print(f"第{i}月共有{i-3}对兔子")
print()
if i >= 10:
j = i -9
n =( (j**2)+3*j+12)
print(f"第{i}月共有{n}对兔子")
print()
def call ():
while True:
rabbit()
call()
04.找出10000以内能被5或6整除,但不能被两者同时整除的数(函数)
#找出10000以内能被5或6整除,但不能被两者同时整除的数(函数)
def change ():
list_1 = []
list_2 = []
list_3 = []
for i in range(1,10001):
if i % 5 == 0:
list_1.append(i)
if i % 6 == 0:
list_2.append(i)
list_1.extend(list_2)
for j in list_1:
if j % 5 == 0 and j % 6 != 0:
list_3.append(j)
if j % 5 != 0 and j % 6 == 0:
list_3.append(j)
list_3.sort()
print(list_3)
change()
05.写一个方法,计算列表所有偶数下标元素的和(注意返回值)
根据完整的路径从路径中分离文件路径、文件名及扩展名
#写一个方法,计算列表所有偶数下标元素的和(注意返回值)
a = [1,2,3,4,5,6,7,8,9,10,11]
print(a)
print("列表所有偶数下标元素的和为:")
def change ():
num1 = 0
for i in range(0,len(a)):
if i % 2 == 0 :
num1 += a[i]
print(num1-1)
def call ():
change()
path_separation()
#根据完整的路径从路径中分离文件路径、文件名及扩展名
def path_separation ():
path = input("请输入完整的路径:")
file_path = path[0:path.rfind("\\")+1]
file_name = path[path.rfind("\\")+1:]
file_extension=path[path.rfind(".")+1:]
print(f"文件的路径是:{file_path},文件名字是:{file_name},扩展名是:{file_extension}")
call()
06.根据标点符号对字符串进行分行
#根据标点符号对字符串进行分行
def separate ():
a = input("请输入字符串:")
punctuation = input("请输入要分行的标点符号:")
a = a.split(f'{punctuation}')
print(a)
for i in range(0,len(a)):
print(a[i])
def call ():
while True:
separate()
call()
07.去掉字符串数组中每个字符串的空格
#去掉字符串数组中每个字符串的空格
def delete_space(n):
a = n.replace(' ','')
print(a)
n = input('请输入一个带空格的字符串:')
delete_space(n)
08.随意输入你心中想到的一个书名,然后输出它的字符串长度。 (len()属性:可以得字符串的长度)
#随意输入你心中想到的一个书名,然后输出它的字符串长度。 (len()属性:可以得字符串的长度)
def book_name ():
book_name = input("随意输入你心中想到的一个书名:")
print(f"{book_name}的字符串长度为:{
len(book_name)}")
print()
def call ():
while True:
book_name()
call()
09.两个学员输入各自最喜欢的游戏名称,判断是否一致,如 果相等,则输出你们俩喜欢相同的游戏;如果不相同,则输 出你们俩喜欢不相同的游戏。
#两个学员输入各自最喜欢的游戏名称,判断是否一致,如
#果相等,则输出你们俩喜欢相同的游戏;如果不相同,则输
#出你们俩喜欢不相同的游戏。
game_name_a1 = list()
game_name_a2 = list()
def a1_input ():
game_name_a1.append(input("请学员一输入游戏名:"))
def a2_input ():
game_name_a2.append(input("请学员二输入游戏名:"))
def comparison ():
if game_name_a2[0] == game_name_a1[0]:
print("你们俩喜欢相同的游戏")
else:
print("你们俩喜欢不相同的游戏")
def call ():
a1_input()
a2_input()
comparison()
call()
10.上题中两位同学输入 lol和 LOL代表同一游戏,怎么办?
#上题中两位同学输入 lol和 LOL代表同一游戏,怎么办?
game_name_a1 = list()
game_name_a2 = list()
def a1_input ():
game_name_a1.append(input("请学员一输入游戏名:"))
def a2_input ():
game_name_a2.append(input("请学员二输入游戏名:"))
def comparison ():
if game_name_a2[0].upper() == game_name_a1[0].upper():
print("你们俩喜欢相同的游戏")
else:
print("你们俩喜欢不相同的游戏")
def call ():
a1_input()
a2_input()
comparison()
call()
11.让用户输入一个日期格式如“2008/08/08”,将 输入的日 期格式转换为“2008年-8月-8日”。
#让用户输入一个日期格式如“2008/08/08”,将输入的日期格式转换为“2008年-8月-8日”。
data_0 = input("请输入日期(格式如“2008/08/08):")
data_1 = data_0.split('/')
print(f"{data_1[0]}年-{data_1[1]}月-{data_1[2]}日")
12.接收用户输入的字符串,将其中的字符进行排序(升 序),并以逆序的顺序输出,“cabed”→"abcde"→“edcba”。
#接收用户输入的字符串,将其中的字符进行排序(升序),并以逆序的顺序输出,“cabed”→"abcde"→“edcba”。
def paixu ():
string=str(input("请输入字符串:"))
ls=list(string)
ls.sort()
ls1=''.join(ls)
ls2=ls1[::-1]
ls.reverse()
print(f"升序输出的顺序为:{ls1}")
print(f"逆序输出的顺序为:{ls2}")
paixu()
13.接收用户输入的一句英文,将其中的单词以反序输 出,“hello c sharp”→“sharp c hello”。
#接收用户输入的一句英文,将其中的单词以反序输出,“hello c sharp”→“sharp c hello”。
def change(a):
ls = a.split(" ")
ls.reverse()
list = ""
for i in range(0,len(ls)) :
list += ls[i] + " "
return list
a = input("请输入字符串:")
date = change(a)
print(date)
14.从请求地址中提取出用户名和域名
网易http://www.163.com?userName=admin&pwd=123456
#从请求地址中提取出用户名和域名http://www.163.com?userName=admin&pwd=123456
s = "http://www.163.com?userName=admin&pwd=123456"
ls = s.split("/")
s1 = ls[2]
print(s1)
ls2 = s1.split("?")
print("域名是:{}".format(ls2[0]))
s1 = ls2[1]
ls3 = s1.split("&")
s1 = ls3[0]
ls4 = s1.split("=")
print("用户名是:{}".format(ls4[1]))
15.有个字符串数组,存储了10个书名,书名有长有短,现 在将他们统一处理,若书名长度大于10,则截取长度8的 子串并且最后添加“...”,加一个竖线后输出作者的名字。
#有个字符串数组,存储了10个书名,书名有长有短,现在将他们统一处理,若书名长度大于10,则截取长度8的子串并且最后添加“...”,加一个竖线后输出作者的名字。
def a ():
ls = ["马克思主义原理","高等数学","算法与数据结构","大学英语","离散数学66666666"]
dir = {
"马克思主义原理":"高等教育出版社","高等数学":"同济大学数学系","算法与数据结构":"严蔚敏","大学英语":"鲜瑞杰","离散数学66666666":"高等教育出版社"}
for i in range(0,len(ls)):
s = ls[i]
if len(s) > 8:
s = s[0:8]+"...|"+str(dir[ls[i]])
ls[i] = s
print(ls)
a()
16.让用户输入一句话,找出所有"呵"的位置。
#让用户输入一句话,找出所有"呵"的位置
def find_all(string, sub):
start = 0
pos = []
while True:
start = string.find(sub, start)
if start == -1:
return pos
pos.append(start)
start += len(sub)
print(find_all(f'{
input("请输入一段话:")}', f'{
input("请输入要找的字:")}'))
17.让用户输入一句话,判断这句话中有没有邪恶,如果有邪 恶就替换成这种形式然后输出,如:“老牛很邪恶”,输出后变 成”老牛很**”;
#让用户输入一句话,判断这句话中有没有邪恶,如果有邪恶就替换成这种形式然后输出,如:“老牛很邪恶”,输出后变成”老牛很**”;
def a ():
b = input("请输入一段话:")
for i in range(0,len(b)-1):
if b[i] == '邪':
if b[i+1] == '恶':
b = b.replace("邪","*")
b = b.replace("恶","*")
break
print(b)
a()
18.如何判断一个字符串是否为另一个字符串的子串
"""
如何判断一个字符串是否为另一个字符串的子串
find()
index()
双层循环完成
??
"""
ss=input("请输入一个短的字符串:")
ls=input("请输入一个长的字符串:")
print (ss in ls)
19.如何验证一个字符串中的每一个字符均在另一个字符串中出现过
#如何验证一个字符串中的每一个字符均在另一个字符串中出现过
s = input("请输入字符串A:")
s1 = input("请输入需要判断的字符串B:")
flag = True
for i in range(0,len(s1)):
if s.find(s1[i]) == -1:
flag = False
if flag:
print("字符串B:{}的所有元素在A:{}内".format(s1,s))
else:
print("字符串B:{}不是所有元素都在A:{}内".format(s1,s))
20.如何随机生成无数字的全字母的字符串
#如何随机生成无数字的全字母的字符串
import string
import random
a = string.ascii_letters
a1 = ""
for i in range(1,11):
a1 += random.choice(a)
print(a1)
21.如何随机生成带数字和字母的字符串
#如何随机生成带数字和字母的字符串
import string
import random
def create_string_number(n):
m = random.randint(1, n)
a = "".join([str(random.randint(0, 9)) for _ in range(m)])
b = "".join([random.choice(string.ascii_letters) for _ in range(n - m)])
return ''.join(random.sample(list(a + b), n))
print(create_string_number(9))
22.判断一个字符是否是回文字符串(面试题) "1234567654321" "上海自来水来自海上"
#判断一个字符是否是回文字符串(面试题)
# "123456 7 654321"
# "上海自来 水 来自海上"
def huiwen ():
a = input("请输入一段字符串:")
b = a[::-1]
if a == b :
print("是回文字符串")
print()
else :
print("不是回文字符串")
print()
def call ():
while True:
huiwen()
call()