前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >或许,这会是全民皆知的一门编程语言

或许,这会是全民皆知的一门编程语言

作者头像
企鹅号小编
发布2018-02-28 15:07:36
7020
发布2018-02-28 15:07:36
举报
文章被收录于专栏:企鹅号快讯企鹅号快讯

不久前,国务院印发了《新一代人工智能发展规划》,其中明确指出,要实施全民智能教育项目,在中小学阶段设置人工智能相关课程,逐步推广编程教育,鼓励社会力量参与寓教于乐的编程教学软件、游戏的开发和推广。

浙江省已经将信息技术课程纳入了高考,编程语言是VB,教育部考试中心于2017年10月11日发布了“关于全国计算机等级考试(NCRE)体系调整”的通知,决定自2018年3月起,在计算机二级考试加入了“Python语言程序设计”科目。接着,早先的风声又进一步传开,Python将代替VB进入浙江省信息技术高考。

浙江省估计起的是一个带头示范作用,其他省份也会有所行动,山东省最新出版的小学信息技术六年级教材也加入了Python内容。也就是说,现在的学生,至少从高中开始就学习编程了,如果家长重视这方面的培养,估计会学得更早。Python这门语言,一旦被纳入高考指挥棒的麾下,家长关心,学生牢记,更重要的是,在实际工作中,发挥着巨大的作用,可能会贯穿很多人的一生,而不是考完就忘的节奏。

python属于动态类型语言,相对于java静态类型语言,开发灵活方便,同时有大量免费的库可用,在网络爬虫、数据分析、运维、测试等多个领域起着巨大的作用,随着人工智能的兴起,python更是随着这股热潮而大展宏图。

作为java程序员,不能落后于时代的潮流,其实python学习对于有编程基础的人而言是相对简单的,主要是一些高级特性的理解和运用,至于某些库的使用可以在实际工作中慢慢摸索,不必过早投入。以下是python的一些高级特性,大部分都在里面了,一个熟练的java程序员了解这些,马上就可以上手开发了。

1、切片

>>>L = list(range(100))

>>>L[0:10]

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

2、迭代器

>>>for ch in 'ABC':

...print(ch)

A

B

C

3、列表生成式

>>>[x * x for x in range(1, 5)]

[1, 4, 9, 16]

4、Generator

>>> g = (x * x for x in range(1,3))

>>> next(g)

1

>>> next(g)

4

#如果算法比较复杂,可使用带有yield的函数

>>> def fibonacci_generator():

...a, b = 0, 1

...while True:

...yield a

...a, b = b, a + b

# fibonacci_generator()是一个generator(),为避免多次调用next(),使用for循环

>>> for i in fibonacci_generator():

...if i > 100:

...break

...print(i)

#这些可以直接作用于for循环的对象统称为可迭代对象:Iterable。可以使用isinstance()判断一个对象是否是Iterable对象:

5、map/reduce

>>> def f(x):

...return x * 2

>>> r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])

>>> list(r)

[2, 4, 6, 8, 10, 12, 14, 16, 18]

>>> def add(x, y):

...return x + y

>>> reduce(add, [1, 2, 3, 4, 6])

16

另外还有filter,sorted函数

6、闭包,返回闭包时注意:返回函数不要引用任何循环变量,或者后续会发生变化的变量。

>>> def return_func_that_prints_s(s):

...def f():

...print s

...return f

...

>>> g = return_func_that_prints_s("Hi")

>>> h = return_func_that_prints_s("Hello")

Hi

Hello

7、装饰器

decorator简单来说就是一个方法,它接收一个方法作为参数,并且返回一个方法,如下例的log方法。

>>> def log(func):

...def wrapper(*args, **kw):

...print('call %s():' % func.__name__)

...return func(*args, **kw)

...return wrapper

decorator在Python中使用@符号作用于函数或类,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,如下例,在调用say方法前打印日志。

...def say():

...print('hello')

call say():

hello

java达人

ID:drjava

(扫码或长按识别)

本文来自企鹅号 - java达人媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文来自企鹅号 - java达人媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档