Python编程踩过的坑(持续更新)

1、问题描述:如果我想用Python把C1~C100展开,中间的都补上(像C2、C3等),实现很简单:

        
        num1 = 0
        num2 = 0
        str1 = ''
        [s1, s2] = "C1~C100".split('~')
        for i in range(len(s1)):
            if s1[i].isdigit():
                num1 = int(s1[i:])
                str1 = s1[:i]
      
        for j in range(len(s2)):
            if s2[j].isdigit():
                num2 = int(s2[j:])
       
        d_list = [x for x in range(num1, num2+1, 1)]
        r_list = [str1+str(y) for y in d_list]

那么r_list就是包含C1到C100的所有字符串的一个列表。但是大家有发现啥问题吗?没错,上面的代码不会得到你想要的的结果的,因为他蕴含了许多人编写包含if的for循环最容易出现的问题,那就是for循环是在一个区间内寻找符合if条件的值,如果只找一个值,那么找到了if语句后面一定要break跳出循环,不然循环会在后面再找其他值替换当前值,所以修改后的代码:

        num1 = 0
        num2 = 0
        str1 = ''
        for i in range(len(s1)):
            if s1[i].isdigit():
                num1 = int(s1[i:])
                str1 = s1[:i]
                break
       
        for j in range(len(s2)):
            if s2[j].isdigit():
                num2 = int(s2[j:])
                break
        
        d_list = [x for x in range(num1, num2+1, 1)]
        
        r_list = [str1+str(y) for y in d_list]
        return r_list

2、问题描述:如果你经常使用Python将网页里的内容、文本里的内容获取想保存在.txt时经常会遇到,编解码错误的问题

详细解决过程:https://blog.csdn.net/qq983392709/article/details/85229091

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值