python练习六

文章介绍了Python中的多种基础编程技巧,包括遍历、条件判断、字符串操作(如分割、排序、替换)、文件路径处理、日期格式转换、数组操作以及字符串格式化。还涉及到了用户输入验证和字符串逻辑处理。
摘要由CSDN通过智能技术生成

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

def func():
    for i in range(0,10001):
        if(i%5==0 or i%6==0) and i%30!=0:
            print(i,end=" ")
func()


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

ls=eval(input("请输入一个列表:"))
def func(ls):
    count = 0
    for i in range(2,len(ls)):
        if i%2==0:
            count +=ls[i]
    return count
print("列表中所有偶数下标元素的和是:",func(ls))


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

path = input("请输入完整的路径从路径:")
file_path = path[0:path.rfind("\\")+1]
file_name = path[path.rfind("\\")+1:]
file_extension=path[path.rfind(".")+1:]
print(f"文件的路径是:{file_path},文件名字是:{file_name},扩展名是:{file_extension}")


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

def enter(fh, string):
    tmp = string.split(f'{fh}')
    for i in range(len(tmp)):
        print(tmp[i])

if __name__ == '__main__':
    string = input('请输入一段带有标点符号的字符串:')
    fh = input('请输入换行标志符号:')
    enter(fh, string)


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

ls = eval(input("请输入一个字符串数组:"))
ls1 = []
for i in range(0, len(ls)):
    ls1.append(ls[i].replace(" ", ""))
print("原数组",ls)
print("去掉空格后的数组:",ls1)


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

a = input('请输入学员a最喜欢的游戏名称:')
b = input('请输入学员b最喜欢的游戏名称:')

if a.upper() == b.lower():
    print('你们喜欢相同的游戏')
else:
    print('你们喜欢不同的游戏')


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

a = input('请输入学员a最喜欢的游戏名称:')
b = input('请输入学员b最喜欢的游戏名称:')

if a.upper() == b.upper():
    print('你们喜欢相同的游戏')
else:
    print('你们喜欢不同的游戏')


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

def swich_date(one_date):
    tmp = one_date.split('/')
    print(f'{tmp[0]}年-{int(tmp[1])}月-{int(tmp[2])}日')
if __name__ == '__main__':
    one_date = input('请输入“年/月/日”格式的日期:')
    swich_date(one_date)


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

string=str(input("请输入字符串:"))
ls=list(string)
ls.sort()
ls1=''.join(ls)
ls2=ls1[::-1]
ls.reverse()
print(f"升序输出的顺序为:{ls1}")
print(f"逆序输出的顺序为:{ls2}")


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

def sentence_reverse(sentence):
    tmp = sentence.split(' ')
    tmp.reverse()
    senrence = ' '.join(tmp)
    return senrence

if __name__ == '__main__':
    sentence = input('请输入一句英文:')
    print(f'逆序输出:{sentence_reverse(sentence)}')


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

url = 'http://www.163.com?userName=admin&pwd=123456'
 
ls = url.split('?')
domain = ls[0].split('/')[2]
ls_1 = ls[1].split('&')
username = ls_1[0].split('=')[1]
print(f'域名:{domain}')
print(f'域名:{username}')


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

ls = ["马克思主义原理","高等数学","算法与数据结构","网络对抗原理","数据库技术应用教程","毛泽东思想和中国特色社会主义理论体系概论"]
dir = {"马克思主义原理":"高等教育出版社","高等数学":"同济大学数学系","算法与数据结构":"严蔚敏","网络对抗原理":"胡建伟","数据库技术应用教程":"刘志丽","毛泽东思想和中国特色社会主义理论体系概论":"高等教育出版社"}
for i in range(0,len(ls)):
    s = ls[i]
    if len(s) > 8:
        s = s[0:8]+"...|"+str(dir[ls[i]])
    ls[i] = s
print(ls)


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

def find_all(string, sub):
    start = 0
    pos = []
    while True:
        start = string.find(sub, start)
        if start == -1:
            return pos
        pos.append(start)
        start += len(sub)
print(find_all('我就呵呵笑不说话呵呵呵呵呵', '呵'))


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

a = input("请输入一句话:")
for i in range(0, len(a) - 1):
    if a[i] == "邪":
        if a[i + 1] == '恶':
            a = a.replace("邪", "*")
            a = a.replace("恶", "*")
            break
print(a)


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

user = str(input("请输入字符串:"))
def judge():
    for i in range(len(user) // 2):
        if user[i] != user[len(user) - i - 1]:
            return False
        return True
print(judge())

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值