Python阶段练习(7-8day)

本文介绍了多个编程任务,包括寻找特定数字、计算列表操作、路径分析、字符串处理、游戏名称比较、日期格式转换、回文判断以及文件筛选,展示了Python中基础和实用的编程技巧。
摘要由CSDN通过智能技术生成

1.找出10000以内能被5或6整除,但不能被两者同时整除的数(函数)

def find_numbers():
    result = []
    for i in range(1, 10001):
        if (i % 5 == 0 or i % 6 == 0) and not (i % 5 == 0 and i % 6 == 0):
            result.append(i)
    return result

print(find_numbers())

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

def sum_even_index_elements(lst):
    return sum(lst[::2])

# 示例
lst = [1, 2, 3, 4, 5, 6]
result = sum_even_index_elements(lst)
print(result)  # 输出:9 (1 + 3 + 5)

3.根据完整的路径从路径中分离文件路径、文件名及扩展名

import os

def split_file_info(file_path):
    # 获取文件路径和文件名
    file_dir, file_name = os.path.split(file_path)
    
    # 获取文件名和扩展名
    file_base_name, file_ext = os.path.splitext(file_name)
    
    return file_dir, file_base_name, file_ext

file_path = "/example/path/to/your/file.txt"
file_dir, file_base_name, file_ext = split_file_info(file_path)

print("文件路径:", file_dir)
print("文件名:", file_base_name)
print("扩展名:", file_ext)

4.根据标点符号对字符串进行分行

s = '1.121212..12.1'
print(*s.split('.'),sep='\n')

5.去掉字符串数组中每个字符串的空格

s='1 1 2 11 1 1 1 11 1 1'
d=''
for i in s.split():
    d=d+i
print(d)

6.两个学员输入各自最喜欢的游戏名称,判断是否一致,如 果相等,则输出你们俩喜欢相同的游戏;如果不相同,则输 出你们俩喜欢不相同的游戏。

# 获取两个学员输入的游戏名称
game1 = input("请输入你最喜欢的游戏名称:")
game2 = input("请输入你最喜欢的游戏名称:")

# 判断两个游戏名称是否相同
if game1 == game2:
    print("你们俩喜欢相同的游戏")
else:
    print("你们俩喜欢不相同的游戏")

 7.上题中两位同学输入 lol和 LOL代表同一游戏,怎么办?

# 获取两个学员输入的游戏名称,并转换为小写
game1 = input("请输入你最喜欢的游戏名称:").lower()
game2 = input("请输入你最喜欢的游戏名称:").lower()

# 判断两个游戏名称是否相同
if game1 == game2:
    print("你们俩喜欢相同的游戏")
else:
    print("你们俩喜欢不相同的游戏")

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

# 获取用户输入的日期
date = input("请输入一个日期(格式如2008/08/08):")

# 将日期按照"/"分割成年、月、日三部分
year, month, day = date.split("/")

# 将这三部分重新组合成新的格式
new_date = year + "年-" + month + "月-" + day + "日"

print(new_date)

9.接收用户输入的字符串,将其中的字符进行排序(升 序),并以逆序的顺序输出,“cabed”→"abcde"→“edcba"

# 获取用户输入的字符串
s = input("请输入一个字符串:")

# 将字符串中的字符进行排序
sorted_s = sorted(s)

# 将排序后的字符列表连接成一个新的字符串
new_s = ''.join(sorted_s)

print(new_s)

10.接收用户输入的一句英文,将其中的单词以反序输 出,“hello c java python”→“python java c hello”。

# 获取用户输入的句子
sentence = input("请输入一句英文:")

# 将句子按照空格分割成单词列表
words = sentence.split()

# 将单词列表反转
words.reverse()

# 将反转后的单词列表连接成一个新的句子
new_sentence = ' '.join(words)

print(new_sentence)

11.从请求地址中提取出用户名和域名 http://www.163.com?userName=admin&pwd=123456

from urllib.parse import urlsplit, parse_qs

# 请求地址
url = "http://www.163.com?userName=admin&pwd=123456"

# 使用urlsplit()方法将请求地址分割成各个部分
result = urlsplit(url)

# 使用parse_qs()方法将查询字符串解析成一个字典
query_dict = parse_qs(result.query)

# 从字典中获取用户名和域名
username = query_dict['userName'][0]
domain = result.netloc

print("用户名:", username)
print("域名:", domain)

12.有个字符串数组,存储了10个书名,书名有长有短,现 在将他们统一处理,若书名长度大于10,则截取长度8的 子串并且最后添加“...”,加一个竖线后输出作者的名字。

# 假设我们有一个字符串数组books和一个作者名字author
books = ["The Great Gatsby", "To Kill a Mockingbird", "1984", "The Catcher in the Rye", "Moby-Dick", "Crime and Punishment", "War and Peace", "Pride and Prejudice", "The Odyssey", "Ulysses"]
author = "James Joyce"

for book in books:
    if len(book) > 10:
        book = book[:8] + "..."
    print(book + " | " + author)

13.让用户输入一句话,找出所有"呵"的位置。

# 获取用户输入的句子
sentence = input("请输入一句话:")

# 初始化开始位置和"呵"的位置列表
start = 0
positions = []

# 在循环中使用find()方法查找"呵"的位置
while True:
    position = sentence.find("呵", start)
    if position == -1:
        break
    positions.append(position)
    start = position + 1

print("所有'呵'的位置:", positions)

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

# 获取用户输入的句子
sentence = input("请输入一句话:")

# 使用replace()方法将"邪恶"替换成"**"
new_sentence = sentence.replace("邪恶", "**")

print(new_sentence)

15.判断一个字符是否是回文字符串 "1234567654321" "上海自来水来自海上"

def is_palindrome(s):
    return s == s[::-1]

print(is_palindrome("1234567654321"))  # False
print(is_palindrome("上海自来水来自海上"))  # True

16.过滤某个文件夹下的所有"xx.py"python文件

import os

def filter_files(folder):
    files = os.listdir(folder)
    return [f for f in files if f.endswith('.py')]

print(filter_files('/path/to/your/folder'))

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

溢彩风华

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值