python学精困难吗_终于明白如何学精python

Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。作为今年来越来越流行的语言,我们该如何学习或者转行学习Python呢,这里小迹为大家介绍如何入门学习Python。以下是小编为你整理的如何学精python

如何选择教材,好的开始是成功的一半,选择一本优秀的教材是事半功倍的关键因素。因此我们需要去百度或者知乎等平台看看大家是如何选购学习教材的,寻找最合适自己的学习资料;

书本的选购完成后,我们需要查看是否有配套的视频教程,可以通过百度或者去某些平台购买实时授课,这样在学习过程中遇到的问题就可以得以解答;

书和视频已搞定,那就是环境配置了,PC平台的环境配置以及库的安装,对于能否成功运行Python文件,有着关键的作用。不懂事要学会自己百度搜索相关的资源,一般你遇到的问题许多人也遇到过;

学习过程结束后,我们需要自己动手做些事情,比如写一些界面程序,学学机器学习,训练一下神经网络等,从中我们会发现我们的许多不足与不懂的地方,通过请教他人,或者加入一些论坛进行学习,参考他人的代码等,这都是很重要的,一定要学会站在巨人的肩膀上思考问题;

最后,还有非常非常重要的一点就是代码风格,从最开始学习就必须强迫自己模仿最优秀的代码风格。学会标注而不是一味地复制,在编程时懂得思考,同样的问题可以有数十种解法,因此,懂得思考很重要。

or循环判断的格式

for循环判断的格式为:

for i in range(100): print i,

我们开始加上判断条件输出50到70之间的数

for i in range(100): if i >49 and i <71: print i,

当然可以以此类推,比如输出 1-100 内,除开50-70的数,说明一下在range后面的括号内,前面可以自定义起始值

#求1-100 内的所有奇数for i in range(1,100): if i % 2 == 1: print i,

我们在1到100内循环查找,如果i无法被2整除就是奇数(视频中这里写错了写成了质数,表示抱歉)

新增一个知识点获取随机数,我们可以通过导入的方式获取一个随机数

import randoma = random.randint(1,200)b = random.randint(1,999)print a,b

常用的变量

class Student(object): def __init__(self, name, score): self.name = name self.score =score def Print_score(self): print ('%s:%s' % (self.name, self.score))bat = Student('hongbin', 100)bat.Print_score()print bat.name

我们可以观察一下在Class内部,可以有属性和方法,而外部代码可以通过直接调用实例变量的方法来操作数据,这样,就隐藏了内部的复杂逻辑。但是,从前面Student类的定义来看,外部代码还是可以自由地修改一个实例的name、score属性:小编可是好不容易才“考了”100分 就这样被修改成了59,会不会很不爽!

在Python中,实例的变量名如果以__开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问。如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线__,我们可以测试一下:

这样就确保了外部代码不能随意修改对象内部的状态,这样通过访问限制的保护,代码更加健壮。

__str__()方法

如果要把一个类的实例变成 str,就需要实现特殊方法__str__()。

Python 定义了__str__()和__repr__()两种方法,__str__()用于显示给用户,而__repr__()用于显示给开发人员。一般定义__repr__()的快捷办法是直接:

__repr__ = __str__

那么怎么定义__str__()呢?

Class Person(Object):

def __init__(self,name,gender):

self.name = name

self.gender = gender

def __str__(self):

return '(Person: %s, %s)' % (self.name, self.gender)

__repr__ = __str__

__cmp__()方法:

对 int、str 等内置数据类型排序时,Python的 sorted() 按照默认的比较函数 cmp 排序,但是,如果对一组 Student 类的实例排序时,就必须提供我们自己的特殊方法 __cmp__()。__cmp__用实例自身self和传入的实例进行比较,如果实例自身self 应该排在前面,就返回 -1,如果传入的实例应该排在前面,就返回1,如果两者相当,返回 0。

举例:

Class Student(Object):

def __init__(self,name,gender,score):

self.name = name

self.gender = gender

def __str__(self):

return '(Student: %s, %s, %s)' % (self.name, self.gender, self.score)

__repr__ = __str__

def __cmp__(self, s):

if self.name < s.name:

return -1

elif self.name > s.name:

return 1

else:

return 0

L = [Student('Tim', 99), Student('Bob', 88), Student('Alice', 77)]

print sorted(L)

注意:上面粗体部分也可以直接使用简写方式:

return cmp(self.name, s.name)

__len__()方法:

如果一个类表现得像一个list,要获取有多少个元素,就得用 len() 函数。

def __len__(self):

return len(self.names)

@property:Python内置的@property装饰器就是负责把一个方法变成属性调用的;

一个类实例也可以变成一个可调用对象,只需要实现一个特殊方法__call__()。

__slots__的目的是限制当前类所能拥有的属性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值