Python学习——第六七天作业

编程入门 行业动态 更新时间:2024-10-12 14:18:27

Python学习——第六七天<a href=https://www.elefans.com/category/jswz/34/1771149.html style=作业"/>

Python学习——第六七天作业

目录

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

作业2:不死的兔子

作业3:找出重复的整数

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

作业5:请使用函数完成选择、冒泡、插入三种排序

作业6:根据完整的路径从路径中分离文件路径、文件名及扩展名

作业7:获取字符串中汉字的个数

作业8:将字母全部转换为大写或小写

作业9:根据标点符号对字符串进行分行

作业10:去掉字符串数组中每个字符串的空格

作业11:日期格式转换

作业12:字符串的逆排序并输出

作业13:一句英文的逆序输出

作业14:从如下请求地址中提取出用户名和域名

作业15:敏感词替换

作业16:判断一个字符串是否为另一个字符串的子串【分别使用find()  、index()方法】

作业17:随机生成无数字的全字母的字符串

作业19:判定一个字符串中既有数字又有字母

作业20:字符串内的字符排序(只按字母序不论大小写)

作业21:判断一个字符是否是回文字符串(面试题)


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

def fibonacci(n):'''返回第n个斐波那契数列值'''if n < 1:print('n必须是大于等于1的整数!')returnelif n == 1 or n == 2:return 1return fibonacci(n-1) + fibonacci(n-2)if __name__ == '__main__':n = int(input('请输入整数n(n>=1):'))print(f'第{n}项斐波那契数列的值为:{fibonacci(n)}')

结果:


作业2:不死的兔子

有一对刚刚出生的兔子,兔子可以经过四个月,可以长大称为成年的兔子,可以生育新的兔子,假设成年兔子,每个月生一对小兔子,问,第n个月共有多少对兔子(假设兔子不死)

def rabbit(n):'''该函数用于求解如下问题:有一对刚刚出生的兔子,兔子可以经过四个月,可以长大称为成年的兔子,可以生育新的兔子,假设成年兔子,每个月生一对小兔子,问,第n个月共有多少对兔子(假设兔子不死)'''if n < 0:print('n必须大于等于0!')returnelif n >= 0 and n <= 3:return 1return rabbit(n-1) + rabbit(n-4)if __name__ == '__main__':n = int(input('请输入月份n:'))print(f'第{n}个月共有{rabbit(n)}对兔子')

结果:


作业3:找出重复的整数

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

def repeat(ls):'''该函数用于求解如下问题:给定一个包含n+1个整数的数组nums,其数字在1到n之间(包含1和n),可知至少存在一个重复的整数,假设只有一个重复的整数,请找出这个重复的数'''temp = 0for i in range(len(ls)):temp ^= i ^ ls[i]return tempif __name__ == '__main__':ls = [1,2,3,4,5,6,7,4]print(f'{ls}中重复的数为:{repeat(ls)}')

结果:


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

def sum_even(ls):'''计算列表所有偶数下标元素的和'''sum_even = 0for i in range(0,len(ls),2):sum_even += ls[i]return sum_evenif __name__ == '__main__':ls = [1,2,3,4,5,6,7,8,9]print(f'{ls}中所有偶数下标元素的和为:{sum_even(ls)}')

结果:


作业5:请使用函数完成选择、冒泡、插入三种排序

def selection_sort(ls):'''选择排序法'''for i in range(len(ls)):index_min = ifor j in range(i+1,len(ls)):if ls[index_min] > ls[j]:index_min = jls[index_min],ls[i] = ls[i],ls[index_min]return lsdef bubbling_sort(ls):'''冒泡排序法'''for i in range(len(ls)):for j in range(len(ls)-i-1):if ls[j] > ls[j+1]:ls[j],ls[j+1] = ls[j+1],ls[j]return lsdef insert_sort(ls):'''插入排序法'''for i in range(1,len(ls)):key = ls[i]j = i - 1while j >= 0 and key < ls[j]:ls[j+1] = ls[j]j -= 1ls[j+1] = keyreturn lsls = [23,5,12,67,64,87,3,1,2,28]
print(f'原列表为:{ls}')
print(f'选择排序法排序后的列表为:{selection_sort(ls)}')
print(f'冒泡排序法排序后的列表为:{bubbling_sort(ls)}')
print(f'插入排序法排序后的列表为:{insert_sort(ls)}')

结果:


作业6:根据完整的路径从路径中分离文件路径、文件名及扩展名

import os.pathdef separate_path(path):'''该函数用于将完整路径分离为文件路径、文件名及其扩展名并输出打印'''tmp = os.path.basename(path)ls = tmp.rsplit(".",1)print(f'文件路径:{os.path.dirname(path)}')print(f'文件名:{ls[0]}')print(f'文件扩展名:{ls[1]}')if __name__ == "__main__":path = input('请输入要分离的完整文件路径:')separate_path(path)

结果:


作业7:获取字符串中汉字的个数

def isChinese(strings):'''该函数用于统计一个字符串中的汉字个数'''count_ch = 0for ch in strings:if '\u4e00' <= ch <= '\u9fa5':count_ch += 1return count_chif __name__ == "__main__":strings = input('请输入一个字符串以统计其汉字个数:')print(f'\'{strings}\'中的汉字个数有{isChinese(strings)}个')

结果:


作业8:将字母全部转换为大写或小写

def shift(string):'''该函数用于将字符串中的字母全部转换为大写或小写'''string_up = string.upper()string_low = string.lower()print(f'字符串:{string}')print(f'全部转换为大写:{string_up}')print(f'全部转换为小写:{string_low}')if __name__ == '__main__':string = input('请输入一个字符串:')shift(string)

结果:


作业9:根据标点符号对字符串进行分行

def enter(fh,string):'''该函数用于根据指定的标点符号对指定字符串进行换行并输出'''tmp = string.split(f'{fh}')for i in range(len(tmp)):print(tmp[i])if __name__ == '__main__':string = input('请输入一段带有标点符号的字符串:')fh = input('请输入换行标志符号:')enter(fh,string)

结果:


作业10:去掉字符串数组中每个字符串的空格

def cls_space(strings):'''该函数用于清除字符串数组中每个字符串的空格'''for i in range(len(strings)):strings[i] = strings[i].replace(' ','')return stringsif __name__ == '__main__':strings = input('请输入多个字符串(用英文逗号间隔):').split(',')print(f'您输入的字符串数组:{strings}')print(f'清除空格后的字符串数组:{cls_space(strings)}')

结果:


作业11:日期格式转换

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

def swich_date(one_date):'''将输入的日期格式“年/月/日”转换为“xx年-xx月-xx日”'''tmp = one_date.split('/')print(f'{tmp[0]}年-{int(tmp[1])}月-{int(tmp[2])}日')if __name__ == '__main__':one_date = input('请输入“年/月/日”格式的日期:')swich_date(one_date)

结果:


作业12:字符串的逆排序并输出

接收用户输入的字符串,将其中的字符进行逆序排序并输出,如“cabed”→“edcba”

def sort_reverse(str_0):'''该函数用于将字符串逆序排序'''tmp = list(str_0)tmp.sort(reverse=True)str_1 = ''.join(tmp)return str_1if __name__ == '__main__':str_0 = input('请输入一个英文字符串:')print(f'您输入的字符串为:{str_0}')print(f'逆序排序后的字符串为:{sort_reverse(str_0)}')

结果:


作业13:一句英文的逆序输出

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

def sentence_reverse(sentence):'''该函数用于将一句英文逆序输出,如“hello c sharp”→“sharp c hello”'''tmp = sentence.split(' ')tmp.reverse()senrence = ' '.join(tmp)return senrenceif __name__ == '__main__':sentence = input('请输入一句英文:')print(f'逆序输出:{sentence_reverse(sentence)}')

结果:


作业14:从如下请求地址中提取出用户名和域名

=admin&pwd=123456

# 从url地址中提取出用户名和域名url = '=admin&pwd=123456'ls = url.split('?')
domain = ls[0].split('/')[2]
ls_1 = ls[1].split('&')
username = ls_1[0].split('=')[1]
print(f'域名:{domain}')
print(f'域名:{username}')

结果:


作业15:敏感词替换

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

sentence = input('请输入一句话(‘邪恶’是敏感词汇):')
ls = sentence.split('邪恶')
if len(ls) == 1:print('该句中没有敏感词‘邪恶’')
else:print('**'.join(ls))

结果:


作业16:判断一个字符串是否为另一个字符串的子串【分别使用find()  、index()方法】

str_a = input('请输入字符串a:')
str_b = input('请输入字符串b:')# 使用find()方法:
flag = str_a.find(str_b)
if flag == -1:print('字符串b不是字符串a的子串')
else:print('字符串b是字符串a的子串')# 使用index()方法:
try:flag = str_a.index(str_b)
except ValueError:print('字符串b不是字符串a的子串')
else:print('字符串b是字符串a的子串')

结果:


作业17:随机生成无数字的全字母的字符串

import randomdef random_letter():'''随机生成无数字的全字母的字符串'''ls = []str_max = int(input('请输入随机字符串长度的最大值:'))str_len = random.randint(1,str_max)for i in range(str_len):ls.append(chr(random.randint(ord('a'),ord('z'))))strs = ''.join(ls)return strsif __name__ == '__main__':print(random_letter())

结果:


作业18:随机生成带数字和字母的字符串

import randomdef random_letter():'''随机生成字母a-z'''letter = chr(random.randint(ord('a'),ord('z')))return letterdef random_num09():'''随机生成数字0-9'''num = random.randint(0,9)return numif __name__ == '__main__':ls = []str_max = int(input('请输入随机字符串长度的最大值:'))str_len = random.randint(1,str_max)for i in range(str_len):flag = random.randint(0,1)if flag == 0:ls.append(str(random_num09()))else:ls.append(random_letter())strs = ''.join(ls)print(strs)

结果:


作业19:判定一个字符串中既有数字又有字母

def num_alpha(strs):'''判定一个字符串中既有数字又有字母'''flag_num = 0flag_alpha = 0for i in strs:if i.isdigit() == True:flag_num = 1breakfor i in strs:if i.isalpha() == True:flag_alpha = 1breakif flag_num == 1 and flag_alpha == 1:return Trueelse:return Falseif __name__ == '__main__':strs = input('请输入一个字符串:')if num_alpha(strs) == True:print('该字符串中既有数字又有字母')else:print('该字符串不满足既有数字又有字母')

结果:


作业20:字符串内的字符排序(只按字母序不论大小写)

def alp_sort(strs):'''该函数将字符串内的字符排序(不论字母大小写)'''ls = list(strs)ls_upper = []for i in range(len(strs)):if ls[i].isalpha:if ls[i].isupper():ls_upper.append(ls[i])ls[i] = ls[i].lower()ls.sort()for i in ls_upper:flag = ls.index(i.lower())ls[flag] = ls[flag].upper() strs = ''.join(ls)return strsif __name__ == '__main__':strs = input('请输入一段字符串:')print(f'排序后的字符串(不论字母大小写):{alp_sort(strs)}')

结果:


作业21:判断一个字符是否是回文字符串(面试题)

如:"1234567654321"、 "上海自来水来自海上"

def isHuiWen(strs):'''该函数用于判断一个字符是否是回文字符串'''ls_1 = list(strs)ls_2 = list(strs)ls_2.reverse()if ls_1 == ls_2:print('该函数是回文字符串')else:print('该函数不是回文字符串')if __name__ == '__main__':strs = input('请输入一个字符串:')isHuiWen(strs)

结果:

 

更多推荐

Python学习——第六七天作业

本文发布于:2024-02-06 13:16:55,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1748780.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:作业   Python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!