python3一行代码到底有多强大?

我们先看看下面这几个例题,感受一下!

例题1、打印大写字母、小写字母

大写字母:
常规写法:
upper=""
for i in range(65,91):
print(chr(i),end="")

在这里插入图片描述

一行代码:

在这里插入图片描述
注意:多取一位的时候是因为这里是开区间,最后一位取不上,所以一般多取一位。

print("".join(chr(i) for i in range(65,91)))

在这里插入图片描述

小写字母:
常规写法:
lower=""
for i in range(97,123):
print(chr(i),end="")

在这里插入图片描述

一行代码:

在这里插入图片描述

print("".join(chr(i) for i in range(97,123)))

在这里插入图片描述

例题2、一行代码实现1-100之和

常规写法:
>>> sum=0
>>> for i in range(1,101):
...     sum+=i
...
>>> print(sum)
5050

在这里插入图片描述

一行代码:

在这里插入图片描述

>>> print((1+100)*50)
5050

在这里插入图片描述

例题3、打印9*9的乘法口诀

常规写法:
for i in range(1,10):
    print()
    for j in range(1,i+1):
        print('%dx%d=%d\t'%(j,i,i*j),end="")

在这里插入图片描述

一行代码:

在这里插入图片描述

print('\n'.join([' '.join(['%s*%s=%-2s' % (j, i, i*j) for j in range(1, i+1)])for i in range(1, 10)]))

在这里插入图片描述

例题4、一个list包含10个数字,然后生成新的list,要求,新的list里面的数都比之前的数多1

常规写法:
list1=list(range(10))
result=[]
for i  in list1:
    result.append(i+1)
print(result)

在这里插入图片描述

一行代码:

在这里插入图片描述

>>> print([i+1 for i in list(range(10))])
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

在这里插入图片描述

例题5、把字符串中的所有数字去掉

常规写法:
#encoding-utf-8
s="a1b2c3d4e5fffff"
letters_list=[]
for i in s:
    if i not in "0123456789":
        letters_list.append(i)
print("".join(letters_list))

在这里插入图片描述

一行代码:

在这里插入图片描述

print("".join(filter(lambda x:x not in "0123456789","a1b2c3d4e5fff")))

在这里插入图片描述

例题6、非递归实现生成斐波那契数列

常规写法:
#conding=utf-8
def fib(n):
    result=[]
    if n<=0 or not isinstance(n,int):
        return result
    for i in range(n):
        if i<2:
            result.append(1)
        else:
            result.append(result[i-1]+result[i-2])
    return result

print("斐波那契数列:",fib(15))
print("斐波那契数列:",fib(-5))

在这里插入图片描述

一行代码:

在这里插入图片描述

 print([x[0] for x in [(a[i][0], a.append([a[i][1], a[i][0]+a[i][1]])) for a in([[1, 1]], ) for i in range(15)]])

在这里插入图片描述

总结:

从上面的这几个例题我们可以看出常规代码写法与一行代码的区别:
1、常规代码可读性高,适合初学者
2、一行代码一目了然,适合有一定代码功底的人
3、维护性方面,各有好处,具体情况具体分析。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值