hg888皇冠手机登录

多少个小例子告诉您, 黄金时代行Python代码能干哪些事

一月 11th, 2020  |  www.hg888.com

www.hg888.com 1

享受前依然先分享温馨的Python学习调换群:308754087群内不依期享受干货,富含2017最新的python公司案例学习资料和零功底入门教程,迎接初学和进级中的小伙伴入群学习交换

率先你要打听一下Python之禅,生龙活虎行代码输出“The Zen of Python”:

1.   选教程

莫非常小家在互连网早已看过相通的python单行代码能够完毕的效劳,比方:

Python 的风味正是能够长足的付出,高效到一行代码就可以让您喜爱!

python -c “import this”

 看见crossin的编制程序体育地方python教程抑遏能够。以那个为主要学习内容。

九九乘法表:

有趣:

“””

   
python轻松实验的编辑器用IDLE已经足足,更加好的英特网有推荐PyCharm(又是JetBrain的成品卡塔尔的。

print(‘ ‘.join([‘ ‘.join([‘%s*%s=%-2s’%for y in range for x in range

对Python发生贰个很好的初体验就是要注重。那么上面大家就来试试看。

The Zen of Python, by Tim Peters

  2. 站队

www.hg888.com 2

www.hg888.com 3

Beautiful is better than ugly.

 python学习须要站队,有2.7版本有3.6版本。作者选拔优先3.6,因为语法以为更标准,当然2琳琅满指标语法也必须要看懂,要不然此前的浩大胜果无法运用的。

或者出口前100项斐波那契数列的值

www.hg888.com 4

Explicit is better than implicit.

3.
if语句,while语句都不是像C语言使用大括号来约束其后的block的,而是选取冒号和前面包车型地铁代码缩进来促成的。

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

www.hg888.com 5

Simple is better than complex.

4. for的反人类写法

www.hg888.com 6

在Python里实行它,接下去你就能映重视帘上边的东西

Complex is better than complicated.

最反人类的写法是其意气风发

嗯,这么些都得以成功,那么下边包车型客车这么些酷炫的代码,更值得生机勃勃看!

www.hg888.com 7

Flat is better than nested.

for i in range(1,101):

单线迷宫

像那样的四个心形

Sparse is better than dense.

    print i

python -c “while 1:import random;print(random.choice, end=”)”

字符图形依然很风趣的,有二个有名的图像叫mandelbrot。Mandelbrot图像中的每一种岗位都对应于公式N=x+y*i
中的多个复数,高级中学学过复数的都还应有有纪念。各种地点用参数N来表示,它是x*x+y*y的平方根。如果那些值大于或等于2,则这一个数字对应的地点值是0。假诺参数N的值稍差于2,就把N的值改为NN-

Readability counts.

    sum = sum + i

www.hg888.com 8

N(N=(xx-yy-x)+(2xy-y)i)),相提并论新测量试验那些新N值。wiki百科给出的图像是那般的:

Special cases aren’t special enough to break the rules.

print sum

emmmm,那几个恐怕相比较空虚,那么试试将内部的字符换一下,例如上边那么些代码

www.hg888.com 9

Although practicality beats purity.

打字与印刷结果是1~100, 而不是1~101.  最后sum是5050.
心里疯狂了有木有,有木有。

python -c “while 1:import random;print(random.choice, end=”)”

有未有超级漂亮妙

Errors should never pass silently.

5. 关于字符串

www.hg888.com 10python直播学习群542110741

接下去就教我们用后生可畏行代码或二个Mandelbrot:

Unless explicitly silenced.

以下都以对的

那个迷宫效果还足以呢!

In the face of ambiguity, refuse the temptation to guess.

print “It’s good” 外面双引号里面就用单引号,反过来同样

猜数字

www.hg888.com 11

There should be one– and preferably only one –obvious way to do it.

print “It\’s good”

众多的学科中都有那么些小案例,那么您用了几行吧?试试上面那些

www.hg888.com 12

Although that way may not be obvious at first unless you’re Dutch.

#没有差距于扶植转义字串

python -c “import random;n=random.randint;[(lambda a:print(‘Y’ if a==n
else ‘H’ if a>n else ‘L’))(int for i in range]”

施行后会展现如图:

Now is better than never.

print “You are a \”good\” man”

www.hg888.com 13

www.hg888.com 14

Although never is often better than *right* now.

一级无敌的多个引号,里面的剧情原样展现,包含换行:

www.hg888.com,不错,你未曾看错,豆蔻年华行代码能够达成这么些效果!

python学习沟通群:308754087

If the implementation is hard to explain, it’s a bad idea.

print “””

100英尺高尔夫

其高效性:

If the implementation is easy to explain, it may be a good idea.

Stay hungry,

参谋了“愤怒的飞禽”,目的是让高尔夫适逢其会落到100英尺处,十分少不菲!

本条就很风趣了

Namespaces are one honking great idea — let’s do more of those!

stay foolish.

import math as m;a,v=eval;[print(‘%03d’%x+’
‘*m.floor(0.5+x*m.tan-x*x/(v*m.cos for x in range]

例如一行代码打字与印刷九九乘法表:

“””

            — Steve Jobs

www.hg888.com 15

print ‘ ‘.join([‘ ‘.join([‘%s*%s=%-2s’ % (y,x,x*y) for y in
range(1,x+1)]) for x in range(1,10)])

从“The Zen of
Python”也能看见,Python倡导Beautiful、Explicit、Simple等条件,当然我们接下去要介绍的一站式Python能兑现如何有意思的功用,大概和Explicit原则相违背。

“””

亟待输入2个参数,也等于高尔夫的角度和进程!

www.hg888.com 16

www.hg888.com 17

再看多少个字符串的例证,后生可畏看就懂

最后

一行代码实现带交互作用的阶乘:

假定您有别的那上边的小例子,也接待研商,笔者会加到文章中,文章只怕会长期更新。

print “very “+ str1

这几个代码应用的大多技巧应该看起来很了解:

www.hg888.com 18

(1卡塔尔(قطر‎生龙活虎行代码运行八个Web服务

print “price is %.2f” %4.99

列表剖析,lambda表明式和自便整数,通过多少个函数的结缘,能够写出相当帅的代码!

字符串排序和高效排序:

python -m SimpleHTTPServer 8080 # python2

yourname=”Stephen”

目的在于大家能在这里些实例中扩张思路,写出更棒的代码!加油!

“”.join((lambda x:(x.sort(),x)[1])(list(‘string’)))qsort = lambda arr:
len(arr) > 1 and qsort(filter(lambda x: x<=arr[0], arr[1:] ))

python3 -m http.server 8080 # python3

print “I love you, %s.” %yourname

  • arr[0:1] + qsort(filter(lambda x: x>arr[0], arr[1:] )) or arr

www.hg888.com 19

print “Today is %s.” %’Friday’

扩展:

(2State of Qatar黄金时代行代码达成变量值沟通

6. for的嵌套

再有一个幽默的

a, b = 1, 2; a, b = b, a

看个例证

输入:

(3State of Qatar风流罗曼蒂克行代码化解FizzBuzz难点:

*

www.hg888.com 20

FizzBuzz难题:打字与印刷数字1到100, 3的倍数打印“Fizz”, 5的翻番打字与印刷“Buzz”,
既是3又是5的倍数的打字与印刷“FizzBuzz”

**

它展开了浏览器,体现网址上的漫画和相关内容:

for x in range(1, 101): print(“fizz”[x % 3 * 4:]+”buzz”[x % 5 *
4:] or x)

***

www.hg888.com 21

(4State of Qatar生机勃勃行代码输出特定字符”Love”拼成的心形

****

大家能够把python的文书打包,做成库的情势,然后import进来,是黄金年代种偷换概念和前提的一整套代码。比如,为了与windows
传输文件,再Mac上临时搭个ftp:

print(‘\n’.join([”.join([(‘Love'[(x-y) % len(‘Love’)] if
((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3
<= 0 else ‘ ‘) for x in range(-30, 30)]) for y in range(30, -30,
-1)]))

*****

www.hg888.com 22

www.hg888.com 23

代码完毕:

那当然要依赖pyftpdlib 这么些库了,机器上平素不,pip install pyftpdlib
就可以了。

(5卡塔尔意气风发行代码输出Mandelbrot图像

for j in range(0,5):

假若大器晚成行代码中允许分号存在,那就只是就义可读性而已了,那就基本上手眼通天。

Mandelbrot图像:图像中的每一种岗位都对应于公式N=x+y*i中的三个复数

    for i in range(0,j+1):

在联网的前提下,获取公网IP地址

print(‘\n’.join([”.join([‘*’if abs((lambda a: lambda z, c, n: a(a,
z, c, n))(lambda s, z, c, n: z if n == 0 else s(s, z*z+c, c, n-1))(0,
0.02*x+0.05j*y, 40)) < 2 else ‘ ‘ for x in range(-80, 20)]) for y
in range(-20, 20)]))

        print “*”,

python -c “import socket;
sock=socket.create_connection((‘ns1.dnspod.net’,6666)); print
sock.recv(16); sock.close()”

www.hg888.com 24

    print “”

生龙活虎行代码还可以够自由写个小游戏,来模拟一下golf击球:

(6卡塔尔国风流浪漫行代码打字与印刷九九乘法表

瞩目到地点的逗号是不换行,在python3里要写成print(‘*’, end=’ ‘)

python -c “import math as m;a,v=eval(input());[print(‘%03d’%x+’
‘*m.floor(0.5+x*m.tan(a)-x*x/(v*m.cos(a)))+’o’) for x in
range(102)]”

print(‘\n’.join([‘ ‘.join([‘%s*%s=%-2s’ % (y, x, x*y) for y in
range(1, x+1)]) for x in range(1, 10)]))

别的看一个例证,参数有三个的

输入角度和技能大小如(0.8,80State of Qatar,就能够获取一条字符描画的抛物线了。

www.hg888.com 25

print “%s’s score is %d” % (‘Mike’, 87)

充实上while 等话语,画二个穷追猛打的python -c “while 1:import
random;print(random.choice(‘╱╲’卡塔尔, end=”卡塔尔”。

(7State of Qatar大器晚成行代码计算出1-100之内的素数(八个本子卡塔尔

7. 布尔型的细微的反人类设计

www.hg888.com 26

print(‘ ‘.join([str(item) for item in filter(lambda x: not [x % i for
i in range(2, x) if x % i == 0], range(2, 101))]))

在python中,其余项目转成 bool 类型时,以下数值会被认为是False:

print(‘ ‘.join([str(item) for item in filter(lambda x: all(map(lambda
p: x % p != 0, range(2, x))), range(2, 101))]))

   为0的数字,包括0,0.0

www.hg888.com 27

空字符串,满含”,””

(8State of Qatar生龙活虎行代码输出斐波那契数列

代表空值的None

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(30)]])

   空集合,包括(),[],{}

www.hg888.com 28

其它的值都是为是True。

(9卡塔尔国大器晚成行代码达成快排算法

骨子里这一个法则万幸了,0是False而1是True是Computer界的守旧。

qsort = lambda arr: len(arr) > 1 and qsort(list(filter(lambda x: x
<= arr[0], arr[1:]))) + arr[0:1] + qsort(list(filter(lambda x:
x > arr[0], arr[1:]))) or arr

None是python中的三个新鲜值,表示什么都不曾。认为有一些像Java中的null

(10卡塔尔意气风发行代码消除八皇后难题

8. 函数

[__import__(‘sys’).stdout.write(‘\n’.join(‘.’ * i + ‘Q’ + ‘.’ *
(8-i-1) for i in vec) + “\n========\n”) for vec in
__import__(‘itertools’).permutations(range(8)) if 8 ==
len(set(vec[i]+i for i in range(8))) == len(set(vec[i]-i for i in
range(8)))]

先看轻便的事例,比一点都不大白:

www.hg888.com 29

def sayHello():

(11卡塔尔(قطر‎少年老成行代码实现数组的flatten功用: 将多维数组转变为后生可畏维

    print (“well, hello”)

flatten = lambda x: [y for l in x for y in flatten(l)] if
isinstance(x, list) else [x]

sayHello()

(12卡塔尔(قطر‎生机勃勃行代码达成list, 有一点点相符与上个效率的反效果

sayHello()

array = lambda x: [x[i:i+3] for i in range(0, len(x), 3)]

sayHello()

(13State of Qatar大器晚成行代码完成求解2的1000次方的诸位数之和

掌握了呢,def是概念八个函数体

print(sum(map(int, str(2**1000))))

再来个带参数的

def plusint(num1, num2):

    print (int(num1) + int(num2))

print (“please input n1”)

n1 = input()

print (“please input n2”)

n2 = input()

sum = plusint(n1,n2)

print (sum)

9. 条件if , else, elif

看上面包车型客车例证丰裕

print (“please input a”)

a = input()

if a==”1″:

    print (“you input 1”)

elif a==”2″:

    print (“you input 2”)

else:

    print (“you input other”)

和别的语言同样, if也足以嵌套

10. 列表list

a = [1,1,2,3,5,8,13]

print (a)

b = range(10,15)

print (b)

c = [“meat”,”egg”,”fish”]

print (c)

d = [365, True]

print (d)

#delete second item in list c

del c[1] 注意那是去除指令,好熟练,egg被剔除了

for i in c:

    print (i)

list中的各样成分都对应三个依次增加的序号。与具体中习于旧贯的序号分裂在于,计算机中的计数常常都是从0开首,python也不例外。假诺您忘掉这些而诱致了错误,请去听一下孙燕姿的《爱从零早先》

#猜点球游戏,入眼是choice方法的接纳

from random import choice

print (“Choose one side to shoot:”)

print (“left, center, right”)

you = input()

print (“You kicked ” + you)

direction = [“left”, “center”, “right”]

com = choice(direction卡塔尔国 从list中收取叁个因素

print (“Computer saved” + com)

if you != com:

  print (“Goal!”)

else:

  print (“Oops…”)

除此以外关于list的负数表示,倾覆三观,实际是从右往左倒着数的情趣:

>>> m = [1,3,5,7,9]

>>> m[-1]

9 尾数第4个要素是9

标签:, , , , , , , ,

Your Comments

近期评论

    功能


    网站地图xml地图