Python的基础性东西学习

我在想,四篇文章都没把这本书的前两章写完,是我写的太啰嗦了吗?这个进度是不是要快一点呢?还是就这样写吧!写下来主要是为了以后的自己看,还是得按照我这啰哩啰嗦的规矩来,哈哈。

Python的实用函数

这些函数在前几篇文章中都用过了,比如说帮助函数help(obj),把对象转为整数的int(obj),还有返回对象长度或元素个数的len(obj),还有打开文件用的open(fname,mode)函数,以及等待用户输入的raw_input(str)函数,其中str是用来展示的。还有三个是没有用过的函数,str(obj)这个是用来对象转字符串的,有时会把地址把对象的地址展示出来,这个和C#很像,还有就是type(obj)这个函数和C#的typeof()函数有一拼,另外还有一个就是dir([obj])这个函数返回的是对象的属性,这个函数好马婵呐!感觉应该不会常用吧,估计用不到吧!其实我不太明白它是干啥的!

被自己打脸是什么感觉

在上一段中我说dir([obj])函数没啥用,应该不常用,这个真是太打脸了。这个函数的用处和help()函数结合着用实在是太强大了,尤其是对新手来说更是如此。

如果不知道某个函数有哪些方法或者变量,就dir一下就知道这个函数的所有东西了,如果想知道这个函数的某个方法的作用的和用法,就help一下,就欧啦!突然感觉脸好疼啊!

Python好玩的语句和语法

  • 注释用符号#,这个前面几篇文章已经用过了,不再赘述,突然想到上一篇文章中有一个问题没有解决,这个问题就是Python为啥是特意强调静态成员变量呢?它有没有动态成员变量呢?这个问题一会再说。
  • 换行用符号\n,一般都是用这个符号进行换行,没啥说的。
  • 继续上一行\,这个就有点意思了,继续上一行的意思就是,代码写的太长了,一行放不下,需要用两行来写,这个时候就要用到\来连接了。
  • 两个语句显示在一行中用符号;,这个没啥说,因为C#就是这个样子。
  • 冒号:需要说一下,C#里是{},而Python里是冒号进行分割代码的头和体。
  • 代码缩进风格,这个Python对这一点是很严格的,也正因为如此,才使代码看着不乱,可以给人以美感。
  • 模块化,这个和C#差不多吧!

    Python为何特意强调静态成员变量?

    刚搜了一下,我有点消化不动了,因为我又看到了类静态方法,类方法,类实例方法,这三种方法先不说,先说为啥强调静态成员变量,对于这个问题,看一下代码就知道了。
class Person(object):
    children = []

    def setPersonChildren(self,childrenName):
        self.children.append(childrenName)

    def printPersonChildren(self):
        print self.children

person1=Person()
person2=Person()
person3=Person()

person1.setPersonChildren('zhangSan')

person1.printPersonChildren()
person2.printPersonChildren()
person3.printPersonChildren()
输出结果如下:
['zhangSan']
['zhangSan']
['zhangSan']

这样的输出结果是不是很不合理?zhangsan明明是给person1了啊!为啥person2,person3也有zhangsan呢?这让zhangsan情何以堪?但这说明了一个问题就是children这个成员变量被当作静态变量使用了,这也是为什么Python强调静态变量的原因了吧!但问题是,Python有没有动态的成员变量呢?有,必须有!

在说动态成员变量之前,需要再把上面的代码中添加一句话。

person1.setPersonChildren('zhangSan')
就只是添加了下面这句话
person1.setPersonChildren('lisi')

person1.printPersonChildren()
person2.printPersonChildren()
person3.printPersonChildren()
输出结果如下:
['zhangSan', 'lisi']
['zhangSan', 'lisi']
['zhangSan', 'lisi']

看,这个是赤裸裸的静态成员变量的用法对不对?现在应该很清楚的就明白了,它为什么是静态吧!下面说说怎么才能使其成为动态成员变量,还是看代码!

class Person(object):

    def __init__(self):
        self.children=[]

    def setPersonChildren(self,childrenName):
        self.children.append(childrenName)

    def printPersonChildren(self):
        print self.children


person1=Person()
person2=Person()
person3=Person()

person1.setPersonChildren('zhangSan')
person2.setPersonChildren('lisi')

person1.printPersonChildren()
person2.printPersonChildren()
person3.printPersonChildren()
这样就好了,输出结果如下:
['zhangSan']
['lisi']
[]

把成员变量放到init函数的self身上就变成动态成员变量了,是不是好简单呢?但是这对我来说确实是有点不适应啊!这个坑咱们是填完了,但填完一个坑,又来三个坑!下面看看这三个坑吧!

Python的类静态方法,类方法,类实例方法

  • 类静态方法
    这个方法和类没啥关系,无法访问类的任何属性(类属性,类实例属性),没有默认的第一个参数,就相当于是普普通通的一个方法,只是它需要@staticmethod来标记其为类静态方法,这个也就只是个标记,没别的意思。
  • 类方法
    第一个参数必须是类对象,可以通过这个类对象访问类属性,但是无法访问类实例对象,是不是有点绕口还不好记?其实啊,这个就相当于是说,可以访问类的静态成员,但是由于没有传实例对象,所以不能访问类的实例属性。需要说明的是,这个类方法需要用@classmethod标记。
  • 类实例方法
    第一个参数是类实例对象,是self,可以通过这个类实例对象访问类实例属性,可以通过类实例对象的__clsss__访问类属性。
    可以通过类对象调用类方法,类实例方法,但是不可以调用类的实例方法,不过只有类实例对象可以调用这三个方法

    三种方法的代码示例

class Person(object):
    children='zhangSan'

    def __init__(self,inst_name):
        self.name=inst_name

    def objMethod(self):
        print 'My name is',self.name

    @classmethod
    def classMethod(cls):
        print cls.children

    @staticmethod
    def staticMethod():
        print 'I am is StaticMethod'

Person.staticMethod()
Person.classMethod()

print '-----------------------------'
person=Person('wangWu')

person.staticMethod()
person.classMethod()
person.objMethod()

这个代码应该是比较清楚的吧!下面来看看代码的执行结果:

I am is StaticMethod
zhangSan
-----------------------------
I am is StaticMethod
zhangSan
My name is wangWu

这种文章不宜过长,就写到这里,一天学一点,日积月累,今天的Python就学到这吧!明天再来学Python,哈哈。

### 回答1: 学习 Python 需要掌握的东西包括: 1. Python 的基础语法,包括变量、运算符、流程控制语句、函数等。 2. 常用的数据类型,如整型、浮点型、字符串、列表、元组、字典等。 3. Python 的常用内置模块,如 math、random、os、re 等。 4. Python 的常用第三方模块,如 numpy、pandas、matplotlib 等。 5. Python 的面向对象编程,包括类、继承、封装、多态等。 6. 如果你打算开发网络应用或者连接数据库,还需要学习 Python 的相关网络编程和数据库开发知识。 当然,这只是基础的知识清单,如果你想更深入地学习 Python,还可以学习 Python 的调试、测试、性能优化等方面的知识。 ### 回答2: 学习Python需要掌握以下几个方面的知识和技能。 首先,需要了解Python的基本语法和语法规则。Python是一种易于学习和上手的编程语言,它具有简洁的语法和明确的编码风格。学习者需要理解Python的基本数据类型、变量、运算符、条件语句、循环语句等基础知识,能够正确编写Python程序。 其次,需要熟悉Python的标准库和常用模块。Python的标准库包含了许多常用的模块,如math、random、os等,这些模块提供了丰富的功能和函数,能够帮助开发者更加高效地完成任务。学习者需要了解这些模块的功能和使用方法,能够灵活运用它们解决实际问题。 此外,还需要学习Python的面向对象编程(OOP)特性。Python支持面向对象的编程范式,允许开发者定义和使用自己的类和对象。学习者需要理解面向对象的概念、则和设计模式,能够使用Python实现面向对象的程序。 最后,需要通过实践项目来提高自己的编程能力。学习者应该积极参与实际项目的开发和实践,巩固所学知识和技能。可以选择一些小型的练手项目,逐步挑战更加复杂和实际的项目,提高自己的编程能力和解决问题的能力。 总之,学习Python需要掌握基本语法、标准库和常用模块、面向对象编程以及通过实践项目提高编程能力。不断学习和实践,才能更好地掌握Python编程技能。 ### 回答3: 学习Python需要掌握以下几个方面的知识: 1.基础语法:掌握Python的基本语法、变量、数据类型、运算符、流程控制语句等。了解Python的缩进规则以及常见的编程错误。 2.函数和模块:了解函数的定义和调用,学会编写简单的函数。同时,熟悉使用Python的内置函数和常用模块如math、random等,能够进行模块的导入和使用。 3.数据结构:理解Python中常用的数据结构,如列表(list)、元组(tuple)、字典(dictionary)和集合(set),了解它们的特点、操作和常见用法。 4.文件操作:学会使用Python对文件进行读写操作,掌握open()函数的基本用法和文件的打开、关闭、读取、写入等操作。 5.异常处理:了解Python的异常处理机制,学会使用try-except语句捕获和处理异常,提高程序的健壮性。 6.面向对象编程(OOP):掌握Python的面向对象编程思想和语法,了解类、对象、继承、多态等概念,能够使用面向对象的方式进行程序设计和开发。 7.常用库和框架:熟悉Python的常用库和框架,如NumPy、Pandas、Matplotlib、Django等,能够利用它们进行数据处理、科学计算、数据可视化和Web开发等。 8.编程实践:通过实际的编程项目来巩固所学内容,提高解决问题的能力和实际应用能力。可以参与开源项目、参加编程竞赛或者自己独立完成一些小型的项目。 总之,学习Python需要掌握基础语法、函数和模块、数据结构、文件操作、异常处理、面向对象编程、常用库和框架,以及进行编程实践。不断实践和积累经验是掌握Python编程的关键。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值