python第三次练习

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

import os


def get_num_duplicate(nums):
    temp = 0
    for i in range(0, len(nums)):
        temp ^= i ^ nums[i]
    return temp


if __name__ == '__main__':
    nums = [1, 2, 8, 3, 4, 5, 6, 7, 8]
    d = get_num_duplicate(nums)
    print(f"数组中重复的是{d}")
    print(os.path.abspath(os.curdir))

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

ls = []
for i in range(0,10001):
    if (i % 5 == 0 or i % 6 == 0 )and i % 30 !=0:
        ls.append(i)
print(ls)

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

from os import path


def scance_file(url):
    file_path = path.dirname(url)
    file_path1 = path.basename(url)
    print(f"文件路径:{file_path}")
    print(f"文件名及扩展名:{file_path1}")

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

import  re

def split_text(text):
    text = re.sub(r"([。!?;,])",r"\n\1",text)#替换匹配成功的指定位置字符串
    #按照换行符分割,得到每一行内容
    lines = text.split("\n")
    #去掉每行开头和结尾空格
    lines =[line.strip() for line in lines]
    #去掉空行
    lines = [line for line in lines if line]
    return lines

text = "这是一段带有标点符号的文本,包括句号。感叹号!问号?分号;逗号,还有省略号……"
lines = split_text(text)
for line in lines:
    print(line)

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

import  re


def no_space(text):
    new_text=[]
for line in text:
        new_line = re.sub(r"\s+ ","",line)
        new_text.append(new_line )
print( new_text)

text = ["   hello", "apple","world"]
no_space(text)

6.随意输入你心中想到的一个书名,然后输出它的字符串长度。 (len()属性:可以得字符串的长度)

def len_test(book_name):
    l=len(book_name)
    print(f"字符串长度是{l}")

book = input("请输入书名:")
len_test(book)

7.两个学员输入各自最喜欢的游戏名称,判断是否一致,如

果相等,则输出你们俩喜欢相同的游戏;如果不相同,则输

出你们俩喜欢不相同的游戏。

def res(a,b):
    a = b.lower()
    a = b.upper()
    if a == b :
        print("两个学员喜欢相同的游戏")
    else:
        print("两个学员喜欢不同的游戏")

a = input("请输入a学员喜欢的游戏:")
b = input("请输入b学员喜欢的游戏:")
res(a,b)

8. 让用户输入一个日期格式如“2008/08/08”,将 输入的日

期格式转换为“2008年-8月-8日”。获取用户输入的日期字符串

date_str = input("请输入日期(格式为2008/08/08):")
# 获取用户输入的日期字符串
year,month,day = date_str.split("/")
new_date_str = f"{year}年,{int(month)}月,{int(day)}日"
print(new_date_str)

9.接收用户输入的字符串,将其中的字符进行排序(升

序),并以逆序的顺序输出,“cabed→"abcde"→“edcba”

str_input = input("请输入一个字符串:")
char_list =sorted(str_input)
new_str = "".join(char_list)[::-1]
print("排序后的字符串:", "".join(char_list))
print("逆序输出的字符串:", new_str)

10.接收用户输入的一句英文,将其中的单词以反序输

出,“hello c sharp”→“sharp c hello”。

str = input("请输入一句英文:")
str1 = str.split()
str1.reverse()
print(str1)

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

address = "http://www.163.com?userName=admin&pwd=123456"
# 用来对字符串进行分割,分割后的字符串以列表形式返回
ls1 = address.split("?")
ls2 = ls1[0].split("/")
print(ls2[2])
ls3 = ls1[1].split("&")
ls4 = ls3[0].split("=")
print(ls4[1])

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

book_name = ['画江湖之不良人', '凡人修仙传', '仙侠武尊', '只愿你曾被这世界温柔相待', '爸爸和朱利安、小兔子巴尼在一起的二十天', '平凡的世界', '陪安东尼度过漫长岁月', '那些古怪又让人忧心的问题']
for i in range(0, len(book_name)):
    if len(book_name[i]) >= 10:
        A = book_name[i][0:8:1]
        B = A + '...'
        book_name[i] = B
print(book_name)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Believe(@.@)

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

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

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

打赏作者

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

抵扣说明:

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

余额充值