python练习题5.0

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

def findDuplicate(nums):
	nums.sort()
	for i in range(1, len(nums)):
		if nums[i] == nums[i - 1]:
			print(nums[i])

测试:

在这里插入图片描述

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

def Divisible():
	for i in range(10000):
		if (i % 5 == 0 or i % 6 == 0) and not (i % 5 == 0 and i % 6 == 0):
			print(i)
 
 
Divisible()

测试:

在这里插入图片描述

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

def indexs(nums):
    double = []
    res = 0
    for i in nums:
        if i % 2 == 0:
            double.append(nums.index(i))
    for j in double:
        res += j
    print(f"偶数下标和为:{res}")
 
 
indexs([1,2,3,4,5,6])

测试:

在这里插入图片描述

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

import os
 
path = '/root/user/11.jpg'
 
# 分离文件路径和文件名
dir_path, filename = os.path.split(path)
 
# 分离文件名和扩展名
name, extension = os.path.splitext(filename)
 
print("文件路径: ", dir_path)
print("文件名: ", name)
print("扩展名: ", extension)

测试:

在这里插入图片描述

5、根据标点符号对字符串进行分行

def split_text(text):
    
    lines = text.split(".")
    lines = [line.strip() + "." for line in lines if line.strip()]
    
    return lines
 
 
text = "I  LOVE  YOU. This is a test."
lines = split_text(text)
for line in lines:
    print(line)

测试:

在这里插入图片描述

6、去掉字符串数组中每个字符串的空格

string_array = ["h e l l o ", " q ww e r   ", "   bye  "]
 
 
for i in range(len(string_array)):
    string_array[i] = string_array[i].replace(" ", "")
 
print(string_array) 

测试:

在这里插入图片描述

7、随意输入你心中想到的一个书名,然后输出它的字符串长度

a = str(input("请输入一个字符串:"))

print(len(a))

测试:

在这里插入图片描述

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

a = input("请a同学输入自己喜欢的游戏:")
b = input("请b同学输入自己喜欢的游戏:")
 
if a == b:
    print(f"a和b都喜欢{a}")
else:
    print(f"a喜欢{a},b喜欢{b}")

测试:

在这里插入图片描述

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

a = input("请a同学输入自己喜欢的游戏:")
b = input("请b同学输入自己喜欢的游戏:")
 
if a.lower() == b.lower():
    print(f"a和b都喜欢{a}")
else:
    print(f"a喜欢{a},b喜欢{b}")

测试:

在这里插入图片描述

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

date_str = input("请输入日期,格式为yyyy/mm/dd: ")
 
year, month, day = date_str.split("/")
year, month, day = int(year), int(month), int(day)
 
output_str = f"{year}年-{month}月-{day}日"
print(output_str)

测试:

在这里插入图片描述

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

string = input("请输入一个字符串: ")
sorted_string = ''.join(sorted(string)) # 将字符串中的字符按升序排序
reverse_sorted_string = sorted_string[::-1] # 将排序后的字符串反转
print(reverse_sorted_string)

测试:

在这里插入图片描述

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

a = str(input("请输入一个字符串: "))
b = a [::-1]
print(b)

测试:

在这里插入图片描述

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

str = input("请输入网址:")
 
url = str[:str.index("?")]
user = str[str.index("=") + 1:str.index("&")]
 
print(f"域名为:{url},用户名为:{user}")

测试:

在这里插入图片描述

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

sentence = input("请输入一句话:")
locations = []
for i in range(len(sentence)):
    if sentence[i] == "呵":
        locations.append(i)
 
print("所有'呵'的位置:", locations)

测试:

在这里插入图片描述

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

sentence = input("请输入一句话:")
index = 0
while True:
    index = sentence.find("呵呵", index)
    if index == -1:
        break
    print("找到了 '呵呵',位置在:", index)
    index += 2

测试:

在这里插入图片描述

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

sentence = input("请输入一句话:")
if "邪恶" in sentence:
    new_sentence = sentence.replace("邪恶", "**")
    print(new_sentence)
else:
    print("句子中没有邪恶")

测试:

在这里插入图片描述

17、如何判断一个字符串是否为另一个字符串的子串

str1 = input("请输入一个字符串:")
str2 = input("请再输入一个字符串:")
 
if str1 >= str2:
    if str2 in str1:
        print(f"{str2}是{str1}的子串")
    else:
        print(f"{str2}不是{str1}的子串")
else:
    if str1 in str2:
        print(f"{str1}是{str2}的子串")
    else:
        print(f"{str1}不是{str2}的子串")

测试:

在这里插入图片描述

18、如何判定一个字符串中既有数字又有字母

def has_digit_and_letter(s):
    has_digit = False
    has_letter = False
    for char in s:
        if char.isdigit():
            has_digit = True
        elif char.isalpha():
            has_letter = True
    return has_digit and has_letter
 
 
s1 = "qwe12"
s2 = "qw"
print(has_digit_and_letter(s1))
print(has_digit_and_letter(s2)) 

测试:

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值