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、維護性方面,各有好處,具體情況具體分析。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章