python学习笔记1:python是什么
python是什么?
(1)python是一种解释型语言,这就是说,与C(编译型语言)和C的衍生语言不同,python代码在运行之前不需要编译,其他解释型语言还有PHP和Ruby。
计算机不能直接理解高级语言,只能直接理解机器语言,所以计算机如果要运行高级语言编写的程序,必须将高级语言翻译成机器语言(汇编语言),而翻译的方式有两种:一种是编译,一种是解释。两者只是在运行时间上有区别。编译型是在程序运行前,解释型语言是在程序运行时。
解释型语言:源代码不是直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行。由于程序不需要编译,程序运行时才翻译成机器语言,每执行一次,翻译一次,所以效率方面比较低。
编译型语言:源代码编译成机器语言,再由机器运行机器码(二进制)。像C/C++等都是编译型语言。程序在运行之前,需要一个专门的编译器,把程序编译成机器语言,运行时,不需要再进行翻译,直接使用编译的结果就行了。执行效率高,依赖编译器,跨平台性较差。
通过图像介绍一下python语言和Java语言的在运行过程中的翻译流程。
(2)python是一门动态语言,指的是声明变量时,不需要说明变量的类型。
动态语言是在运行的时候确定数据类型的语言,变量使用之前不需要类型声明,通常变量的类型是被赋值的那个值的类型。
静态语言是在编译的时候,变量的数据类型即可确定的语言,多数静态类型的语言,要求在使用变量前必须声明数据类型。
(3)python非常适合面向对象编程。因为它支持通过组合和继承的方式定义类。
用组合的形式定义一个类:
[code]class People(object): def __init__(self,name): self.name=name class Action(object): def __init__(self,people): self.people=people def eat(self): print("{name}在吃东西".format(name=self.people.name)) xiao_ming=People('xiaoming') people_action=Action(xiao_ming) people_action.eat()
用继承的方式继承一个类:
[code]class Father(object): def __init__(self): self.xing='孙' class Son(Father): def __init__(self,name): super(Son,self).__init__() self.name=name xiao_ming=Son("明") print('我的名字是{xing}{name}'.format(xing=xiao_ming.xing,name=xiao_ming.name))
(4)python没有访问说明符,类似于(Java中的public和private等)
在Java中:
修饰词 同一个类 同一个包 子类 所有类
public 允许访问 允许访问 允许访问 允许访问
protected 允许访问 允许访问 允许访问
default 允许访问 允许访问
private 允许访问
不带说明符就是,default。
而python中没有访问说明符。
(5)在python语言中,函数是第一类对象,这指的是他们可以被指定给变量,函数也能返回函数类型,也可以接受函数作为输入,类(class)也是第一类对象。
(6)python代码编写快,但是运行速度比编译语言通常要慢,好在python允许加入基于C语言编写的扩展,因此我们能够优化代码,消除瓶颈。Numpy就是一个很好的例子,它运行的速度非常快,因为很多算术运算其实并不是通过python实现的。
(7)python应用非常广泛--网络应用,自动化,科学建模,大数据应用,等等。它也经常被用作“胶水语言”,帮助其他语言和组件改善运行状况。
(8)python让困难变得简单,因此程序员可以专注于算法和数据结构的设计,而不用处理底层的细节。
阅读更多
- Python学习笔记,我的一个PyQt工程,一:Python是什么鬼?
- Python学习笔记,我的一个PyQt工程,一:Python是什么鬼?
- Python学习笔记之疑问 5:#!/usr/bin/env python 是什么意思
- Python学习笔记之疑问13:什么是Range
- Python学习笔记1:Python是什么?
- Python爬虫(入门+进阶)学习笔记 1-1 什么是爬虫?
- Python学习笔记之疑问 7:自定义模块放在什么位置
- Python学习笔记-tips: 什么是*args和**kwargs?
- 【Python】学习笔记——-1、什么是Python?
- Python学习笔记(3): 什么是*args和**kwargs?
- Python学习笔记之疑问 4:什么是模块
- Python学习笔记之疑问 1:def 是什么意思
- 【python学习笔记】模块导入的搜索路径顺序是什么?
- Python学习笔记之疑问12:什么是tuple
- Python学习笔记2
- Python 学习笔记(四):常用内建模块和第三方模块
- 【python学习笔记】第15天
- Python 基础学习笔记6- 多变量赋值
- python 系统学习笔记(五)---字典
- Python爬虫学习笔记——自动爬取XX网站,下载种子,封面,番号