Python第六天作业
作业1:求第n项的斐波那契数列的值(n>=1)
print("斐波那契数列")
num = int(input("请输入要求的第n项:"))
n1 = 1
n2 = 0
s = 1
for i in range(2,num+1):
s = n1 + n2
n2 = n1
n1 = s
print(f"第{num}个的数字为{s}")
作业2:小明考试非常好,妈妈为了奖励小明,给一对刚刚出生的兔子,
兔子可以经过四个月,可以长大称为成年的兔子,可以生育新的兔子,
假设成年兔子,每个月生一对小兔子,问,第n个月共有多少对兔子(加上兔子不死)
def rabbit(m):
if m <= 2:
return 1
else:
return rabbit(m - 1)+rabbit(m - 2)
month = int(input("请输入月份:"))
print("%d月后兔子的数量为%d对"%(month,rabbit(month)))
作业3:给定一个包含n+1个整数的数组nums,其数字在1到n之间(包含1和n),
可知至少存在一个重复的整数,假设只有一个重复的整数,请找出这个重复的数
def number():
for index in range(0,len(ls)):
for num in range(index+1,len(ls)):
if ls[index] == ls[num]:
print(f"{ls[index]}这个数是重复的!")
ls = [1,6,9,6,3,0,78,36,7,89]
number()
4、找出10000以内能被5或6整除,但不能被两者同时整除的数(函数)
def zc():
for i in range(0,10001):
if i % 5 == 0 or i % 6 == 0:
if i % 5 != i % 6:
ls.append(i)
print(ls)
ls = []
zc()
5、写一个方法,计算列表所有偶数下标元素的和(注意返回值)
def oushu():
count = 0
for index in range(0,len(ls)):
if ls[index] % 2 == 0:
count += index
print(count)
ls = [78,56,4,97,57,3,46,27,11]
oushu()
8.根据完整的路径从路径中分离文件路径、文件名及扩展名
import os
import os.path
def separate():
path_name = os.path.abspath("作业8分离路径.py")
print(path_name)
(filepath, tempfilename) = os.path.split(path_name)
(filename, extension) = os.path.splitext(tempfilename)
print(filename)
print(extension)
separate()
9.获取字符串中汉字的个数
def chinese():
count = 0
for index in range(0,len(ls)):
if ls[index] >= '\u4e00' or ls[index] <= '\u9fa5':
count += 1
print(f"这句话中有{count}个汉字")
ls = str(input("请输入你想说的话:"))
chinese()
10.将字母全部转换为大写或小写
def change():
print(ls.upper())
print(ls.lower())
ls = []
ls = str(input("请输入你要转换的英文:"))
change()
11.根据标点符号对字符串进行分行
def fh():
ls1 = ls.replace(",","\n")
print(ls1)
ls = []
ls = str(input("请输入你的语句:"))
fh()
12.去掉字符串数组中每个字符串的空格
def kg():
ls1 = ls.replace(" ","")
print(ls1)
ls = []
ls = str(input("请输入你的语句:"))
kg()
13.随意输入你心中想到的一个书名,然后输出它的字符串长度。 (len()属性:可以得字符串的长度)
def book():
book_name = str(input("请输入你的书名:"))
print("书名长度为:",len(book_name))
book()
14.两个学员输入各自最喜欢的游戏名称,判断是否一致,如
果相等,则输出你们俩喜欢相同的游戏;如果不相同,则输
出你们俩喜欢不相同的游戏。
def game():
student_A = str(input("学员A喜欢的游戏是:"))
student_B = str(input("学员B喜欢的游戏是:"))
if student_A == student_B:
print("两位学员喜欢的游戏一样")
print(student_A)
else:
print("两位学员喜欢的游戏不一样")
print(f"学员A喜欢的游戏是:{student_A}")
print(f"学员B喜欢的游戏是:{student_B}")
game()
15.上题中两位同学输入 lol和 LOL代表同一游戏,怎么办?
def get_A():
A = str(input("学员A喜欢的游戏是:"))
return A.upper()
def get_B():
B = str(input("学员B喜欢的游戏是:"))
return B.upper()
def game():
if student_A == student_B:
print("两位学员喜欢的游戏一样")
print(student_A)
else:
print("两位学员喜欢的游戏不一样")
print(f"学员A喜欢的游戏是:{student_A}")
print(f"学员B喜欢的游戏是:{student_B}")
student_A = get_A()
student_B = get_B()
game()
16.让用户输入一个日期格式如“2008/08/08”,将 输入的日期格式转换为“2008年-8月-8日”。
def time():
time_number = str(input("请输入时间如“2008/08/08”:"))
time_change = time_number.split("/")
print(f"{time_change[0]}-{time_change[1]}-{time_change[2]}")
time()
17.接收用户输入的字符串,将其中的字符进行排序(升序),并以逆序的顺序输出,“cabed”→"abcde"→“edcba”。
inui = input("请输入字符串:")
toko = list(inui)
toko.sort()
toko.reverse()
inui = ''.join(toko)
print(inui)
18.接收用户输入的一句英文,将其中的单词以反序输
出,“hello c sharp”→“sharp c hello”。
def inui():
ls = "hello c sharp"
ls1 = ls.split(" ")
ls2 = ls1[::-1]
ls3 = " ".join(ls2)
print(ls3)
inui()
19.从请求地址中提取出用户名和域名
http://www.163.com?userName=admin&pwd=123456
url = 'http://www.163.com?userName=admin&pwd=123456'
user0 = url.split("?",1)
user = ''.join(user0[1])
user0 = user.split("&",1)
username0 = ''.join(user0[0])
pwd0 = ''.join(user0[1])
username = username0.split("=",1)
pwd = pwd0.split("=",1)
print("userName=",end='')
print(username[1])
print("password=",end='')
print(pwd[1])
20.有个字符串数组,存储了10个书名,书名有长有短,现在将他们统一处理,若书名长度大于10,则截取长度8的子串并且最后添加“…”,加一个竖线后输出作者的名字。
book = ["数据库技术学习指导书","丁宝康"],["Access 21数据库应用实训教程","黄秀娟"],["网页设计与制作","李云程"],["C#程序设计","李德奇"],["数据库基础--基于MS Access的数据库设计","沈祥玖"],["软件测试","赵瑞莲"],["软件人机界面设计","陈启安"],["关系数据库与SQL语言","黄旭明"],["局域网创建与维护案例教程","陈承欢"],["软件工程概论","陶华亭"]
for i in range(0,len(book)):
if len(book[i][0]) > 10:
book[i][0] = book[i][0][:10] + "..."
print(book[i][0]+"|"+book[i][1])
21.让用户输入一句话,找出所有"呵"的位置。
def he():
ls = str(input("请输入你想要说的话:"))
dit = "呵"
for index in range(0,len(ls)):
if dit == ls[index]:
print(index)
he()
22.让用户输入一句话,找出所有"呵呵"的位置。
def he():
ls = str(input("请输入你想要说的话:"))
dit = "呵"
for index in range(0,len(ls)-1):
if dit == ls[index]:
if dit == ls[index + 1]:
print(index)
he()
23.让用户输入一句话,判断这句话中有没有邪恶,如果有邪
恶就替换成这种形式然后输出,如:“老牛很邪恶”,输出后变
成”老牛很**”;
def zfc():
ls1 = ls.replace("邪恶","**")
print(ls1)
ls = []
ls = str(input("请输入你的语句:"))
zfc()
24.如何判断一个字符串是否为另一个字符串的子串
def find_zfc(ls,ls1):
if ls.find(ls1) >= 0:
print(f"({ls1}) 是 ({ls}) 的子串")
else:
print("不是字串")
ls = "我的好兄弟"
ls1 = "兄弟"
find_zfc(ls,ls1)
25.如何验证一个字符串中的每一个字符均在另一个字符串中出现过
def find_zfc(ls):
list_ls = list(ls)
ls1 = list(["兄","好"])
for index in range(0,len(ls1)):
for i in range(0,len(list_ls)):
if ls1[index] == list_ls[i]:
print(f"{ls1[index]}存在ls中")
else:
pass
ls = "我的好兄弟"
find_zfc(ls)
26.如何随机生成无数字的全字母的字符串
import random
a = int(input("请输入字符串长度:"))
inui = ''
for i in range(0,a):
ran = random.randint(1,3)
if ran == 1:
ran1 = random.randint(48,57)
elif ran == 2:
ran1 = random.randint(65,90)
else:
ran1 = random.randint(97,122)
inui = inui + chr(ran1)
print(inui)
27.如何随机生成带数字和字母的字符串
import random
a = int(input("请输入字符串最低长度:"))
inui = ''
b = 0
c = 0
i = 0
while b == 0 or c == 0 or i < a:
ran = random.randint(37,255)
inui = inui + chr(ran)
if ran >= 48 and ran <= 57:
b = 1
if ran >= 65 and ran <= 90 or ran >= 97 and ran <= 122:
c = 1
i += 1
print(inui)
28.如何判定一个字符串中既有数字又有字母
inui = input("请输入一个字符串进行判断:")
x = 0
a1 = 0
a2 = 0
a3 = 0
for i in range(0,len(inui)):
a = ord(inui[i])
if a >= 48 and a <= 57 and a1 == 0:
x += 1
a1 += 1
if a >= 65 and a <= 90 and a2 == 0:
x += 1
a2 += 1
if a >= 97 and a <= 122 and a3 == 0:
x += 1
a3 += 1
if x == 2:
break
if x == 2:
print("该字符串既有数字又有字母")
else
print("该字符串不满足条件")
29.字符串内的字符排序(只按字母序不论大小写)
inui = input("请输入一个字符串进行排序:")
toko = list(inui)
for j in range(0,len(toko)):
for i in range(0,len(toko)-1):
a = ord(toko[i])
b = ord(toko[i+1])
if a >= 65 and a <= 90:
a = a + 32
if b >= 65 and b <= 90:
b = b + 32
if a > b:
temp = toko.pop(i)
toko.insert(i+1,temp)
toko = ''.join(toko)
print(toko)
30.判断一个字符是否是回文字符串(面试题)
“1234567654321”
“上海自来水来自海上”
def hw():
ls = str(input("请输入你的字句,判断是否是回文:"))
ls1 = ls[::-1]
print(ls1)
if ls1 == ls:
print("这是回文")
else:
print("这不是回文")
hw()