Python练习(三)

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

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, 9, 6, 7, 9]
    d = get_num_duplicate(nums)
    print(f"数组中重复的是{d}")
  1. 找出10000以内能被5或6整除,但不能被两者同时整除的数(函数)

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


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

def xy(A):
    count = 0
    for i in A:
        if i % 2 == 0:
            b = A.index(i)
            count += b
    print(count)


A = [0, 2, 3, 4, 4, 8, 9]
xy(A)
  1. 根据完整的路径从路径中分离文件路径、文件名及扩展名

>>> import os
>>> a = '"D:\python\LICENSE.txt"'
>>> os.path.basename(a)
'LICENSE.txt"'
>>> os.path.dirname(a)
'"D:\\python'
  1. 根据标点符号对字符串进行分行

str = input('请输入一个字符串:')
list1 = str.split('.')
print(list1)
  1. 去掉字符串数组中每个字符串的空格

a = input('请输入字符串:')
b = ''
for i in a:
    if i.isspace():
        continue
    b += i
print(f'剔除空格后的字符串为:{b}')
  1. 随意输入你心中想到的一个书名,然后输出它的字符串长度。 (len()属性:可以得字符串的长度)

book = input('请输入您喜欢的书名:')
print('长度为:%s' % len(book))
  1. 两个学员输入各自最喜欢的游戏名称,判断是否一致,如果相等,则输出你们俩喜欢相同的游戏;如果不相同,则输出你们俩喜欢不相同的游戏。

x = input('请输入A同学喜欢的游戏:')
y = input('请输入B同学喜欢的游戏:')
if x == y:
    print('你们喜欢相同的游戏')
else:
    print('你们喜欢不同的游戏')
  1. 上题中两位同学输入 lol和 LOL代表同一游戏,怎么办?

x = input('请输入A同学喜欢的游戏:')
y = input('请输入B同学喜欢的游戏:')
if x.lower() == y.lower():
    print('你们喜欢相同的游戏')
else:
    print('你们喜欢不同的游戏')
  1. 让用户输入一个日期格式如“2008/08/08”,将 输入的日期格式转换为“2008年-8月-8日”。

x = input('请输入日期:(格式如:2008/08/08)')
y = []
for i in (x.split('/')):
    y.append(i)
print(f'{y[0]}年-{y[1]}月-{y[2]}日')
  1. 接收用户输入的字符串,将其中的字符进行排序(升序),并以逆序的顺序输出,“cabed”→"abcde"→“edcba”。

from shlex import join
x = input('请输入字符串进行排序:')
x = list(x)
x.sort()
x.reverse()
print(join(x), sep=',')
  1. 接收用户输入的一句英文,将其中的单词以反序输出,“hello c sharp”→“sharp c hello”。

x = input('请输入一句英文:')
x = x.split()
x.reverse()
print(x)
  1. 从请求地址中提取出用户名和域名

http://www.163.com?userName=admin&pwd=123456

s = "https://www.163.com?userName=admin&pwd=123456"
ls = s.split("/")
s1 = ls[2]
ls2 = s1.split("?")
print("域名是:{}".format(ls2[0]))
s1 = ls2[1]
ls3 = s1.split("&")
s1 = ls3[0]
ls4 = s1.split("=")
print("用户名是:{}".format(ls4[1]))
  1. 有个字符串数组,存储了10个书名,书名有长有短,现在将他们统一处理,若书名长度大于10,则截取长度8的子串并且最后添加“...”,加一个竖线后输出作者的名字。

book_list = ['比时间更短 比爱情更长','你和梦想必须一起活下去','平凡的世界','陪安东尼度过漫长岁月','我不喜欢这世界:我只喜欢你']
for i in range(len(book_list)):
    if len(book_list[i]) > 10:
        b = book_list[i][0:8:1]
        c = b + '...'
        book_list[i] = c
print(book_list)
  1. 让用户输入一句话,找出所有"呵"的位置。

string = input("请输入数据: ")
k = 0
for i in string:
    if string[k] == '呵':
        print(k)
    k += 1
  1. 让用户输入一句话,找出所有"呵呵"的位置。

string = input("请输入一句话:")
k = 0
for i in string:
    if string[k - 1] == '呵' and string[k] == '呵':
        print(k)
    k += 1
  1. 让用户输入一句话,判断这句话中有没有邪恶,如果有邪恶就替换成这种形式然后输出,如:“老牛很邪恶”,输出后变成”老牛很**”;

sentence = input('请输入一句话(‘邪恶’是敏感词汇):')
ls = sentence.split('邪恶')
if len(ls) == 1:
    print('该句中没有敏感词‘邪恶’')
else:
    print('**'.join(ls))
 
  1. 如何判断一个字符串是否为另一个字符串的子串

find()

index()

双层循环完成

??

str_a = input('请输入字符串a:')
str_b = input('请输入字符串b:')
flag = str_a.find(str_b)
if flag == -1:
    print('字符串b不是字符串a的子串')
else:
    print('字符串b是字符串a的子串')
  1. 如何验证一个字符串中的每一个字符均在另一个字符串中出现过双层循环

s = input("请输入字符串A:")
s1 = input("请输入需要判断的字符串B:")
flag = True
for i in range(0, len(s1)):
    if s.find(s1[i]) == -1:
        flag = False
if flag:
    print("字符串B中{}的所有元素在A{}内".format(s1, s))
else:
    print("字符串B中{}不是所有元素都在A{}内".format(s1, s))
  1. 如何随机生成无数字的全字母的字符串

import string
import random
s = string.ascii_letters
s1 = ""
for i in range(1, 20):
    s1 += random.choice(s)
print(s1)
  1. 如何随机生成带数字和字母的字符串

import string
import random
s = string.ascii_letters + string.digits
s1 = ""
for i in range(1, 20):
    s1 += random.choice(s)
print(s1)
  1. 如何判定一个字符串中既有数字又有字母

import string
s = input("输入需要判断的字符串:")
if (s.isalnum() and not s.isalpha()) and not s.isdigit():
    print("字符串{}里包含数字和字母".format(s))
else:
    print("字符串{}里并不是既包含字母又包含数字".format(s))
  1. 字符串内的字符排序(只按字母序不论大小写)

s = input("请输入字符串")
s1 = s.upper()
ls = list(s1)
ls.sort()
s2 = ""
for i in range(0, len(ls)):
    s2 += ls[i]
print(s2)
  1. 判断一个字符是否是回文字符串(面试题)

"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)
   
  1. 爬楼梯问题

  1. 汉诺塔

  1. 不死兔子等等

  1. 将10进制数据转换为二进制,并且统计其中的0和1的数量

  1. 某个人进入如下一个棋盘中,要求从左上角开始走,最后从右下角出来(要求只能前进,不能后退),问题:共有多少种走法?

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值