python基础练习题

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

def func():
    for i in range(1,50):
        if (i % 5 == 0 or i % 6 ==0 ):
            if i % 5 == 0 and i % 6 ==0:
                continue
        print(i)
func()

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

def ls_conut_o(A):
    count = 0
    for i in A:
        if i % 2 == 0:
            b = A.index(i)
            count += b
    print(count)
A = [1,2,3,4,4]
ls_conut_o(A)

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

import os

a = 'D:\User\666\python\index.txt'
>>> os.path.basename(a)
'index.txt '
>>> os.path.dirname(a)
' D:\\User\\666\\python'
>>>

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

>>> ls = 'www.baidu.com'
>>> print(ls.split('.'))
['www', 'baidu', 'com']
>>> ' '.join(ls.split('.'))
'www baidu com'

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

a = input('请输入字符串:')
print('正在为你进行剔除空格的操作')
print('......')
print('......')
print('......')
b = ''
for i in a:
    if i.isspace() == True:
        continue
    b += i
print(f'剔除空格后的字符串为:{b}')

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

>>> a = input()
《老人与海》
>>> a
'《老人与海》'
>>> len(a)
7

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

a = input('请输入A同学喜欢的游戏:')
b = input('请输入B同学喜欢的游戏:')
if a.lower() == b.lower():
    print('你们喜欢相同的游戏')
else:
    print('你们喜欢不同的游戏')

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

a = input('请输入A同学喜欢的游戏:')
b = input('请输入B同学喜欢的游戏:')
if a.lower() == b.lower():
    print('你们喜欢相同的游戏')
else:
    print('你们喜欢不同的游戏')

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

a = input('请输入一个时间格式:(格式如下“2008/08/08”)')
li = []
for i in (a.split('/')):
    li.append(i)
print(f'{li[0]}年-{li[1]}月-{li[2]}日')

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

a = input('请输入一个字符串进行排序:')
li = []
count = ''
for i in a:
    b = int(ord(i))
    li.append(b)
li.sort()
for i in li:
    c = chr(i)
    count += c
print(count)
print(count[::-1])

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

string = input('请输入一句话').split(' ')
string.reverse()
string = (' ').join('string')
print(string)

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

import  re

url = "http://www.163.com?userName=admin&pwd=123456"
basename = re.search(r'(.*)\?(.*)',url,re.M|re.I)
print(basename.group(1))
print(basename.group(2))

13.有个字符串数组,存储了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)

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

string=input("请输入数据\n")
k=0
for i in string:
    if(string[k]=='呵'):
        print(k)
    k+=1

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

string=input("请输入数据\n")
k=0
for i in string:
    if(string[k-1]=='呵' and string[k] == '呵'):
        print(k)
    k+=1

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

import re

def filterchar(string):
    pattern = r'(邪恶)'
    sub = re.sub(pattern,'**',string)
    print(sub)
char = '老牛很邪恶'
filterchar(char)

17.如何判断一个字符串是否为另一个字符串的子串 
    find()  
    index()
    双层循环完成
    ??

a = 'asdwea'
print('a' in a)
>>>True

18.如何验证一个字符串中的每一个字符均在另一个字符串中出现过双层循环。

str_name = 'i love python'
if str_name.find('love') != -1:
    print('字符串中的每一个字符均在另一个字符串中出现过')
else:
    print('字符串中的每一个字符没有另一个字符串中出现过')

19.如何随机生成无数字的全字母的字符串。

import random

a = 'abcdefghijklmnopqrstuvwxyz'
ran_str = random.sample(a,5)   //在a中随机返回5个字符以列表的形式返回

20.如何随机生成带数字和字母的字符串。

import string
import random

random_letter = string.ascii_letters
random_digit = string.digits
random_string = " ".join(random.sample(random_digit + random_letter,10))
print(random_string)

21.如何判定一个字符串中既有数字又有字母。

string=input("请输入数据\n")
if(not(string.isdigit()) and not(string.isalpha())):
        print("该数据中有数字也有字母")
else:
    print('该数据中没有数字或字母')

22.字符串内的字符排序(只按字母序不论大小写)

strings = input('请输入需要排序的字符:')
ls = list(strings)
ls.sort(key=str.lower)  
count = ' '.join(ls)
print(f'排序后的结果为{count}')

23.判断一个字符是否是回文字符串(面试题)
    "1234567654321"
    "上海自来水来自海上"

a = input('请输入字符串,判断是否为回文数列:')
if a == a[::-1]:
    print(f'{a}为回文数列')
else:
    print(f'{a}不是回文数列')

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值