python day2

1、系统位数

32bit =内存的最大寻址空间是2**32, 4GB 
64bit, =2**64 但实际上支持不到这莫大的内存,2**4x, 目前主板支持的最大的内存是100多GB


4gb ==64位系统 会不会比32位系统快? = 一样的 

硬盘:
	5400转 = 每分钟 =骑自行车
	7200转 = 每分钟 =骑电动车
	10000转 = 每分钟 =骑快速电动车
	15000转 = 每分钟 =骑摩托车  机械硬盘最快的
	
	SSD =	Tesla

2、交互器模式常用指令
cd = change directory :进入指定目录
dir : 列出当前目录下的文件以及文件夹
md : 创建目录
rd : 删除目录 注意:rd不能删除非空的文件夹,而且只能用于删除文件夹。
echo “hello java”>a.txt 写入文本到指定文件
type a.txt 显示文件内容命令
del : 删除文件 注意:不能删除文件夹,只能删除文件。
exit : 推出dos命令行
cls : 通知计算机将当前的命令清空
*: 是通配符。
方向键上下是找回上次你写过的命令。
cd… : 退回到上一级目录
cd \ : 退回到根目录
cd …/… 返回上上一层目录
cd …/…/… 返回上上上一层目录
cd …/…/…/… 返回上上上上一层目录
3、文件的扩展名(后缀名),用于区分文件类型
.txt 记事本文本文件
.doc word文件
.xls excel文件
.ppt PPT文件
.exe 可执行文件
.jpg .png .jpeg 图片
.gif 动态图片
.pdf PDF文件
.mp4 .avi 视频
.py python文件
.java java 文件
.c .h c源码
.php php文件
.js javascript
4、变量
变量 是 为了存储 程序运算过程中的一些中间 结果,为了方便日后调用

Variables变量 are used to store保存、储存 information信息 to be referenced被日后调用 and manipulated操作或更改 in a computer program程序. They also并且还 provide提供 a way方式 of labeling标记 data数据 with a descriptive描述性 name, so our programs can be understood理解 more clearly更清晰 by the reader阅读者 and ourselves我们自己. It is helpful to think of variables as containers容器 that hold保持、保存 information(如果我们把变量看作成是一个保存信息的容器是更容易理解的). Their sole主要 purpose目的 is to label标记 and store存储 data in memory内存里. This data数据 can then然后 be used使用它 throughout整个 your program.

变量的命名规则:
1. 要具有描述性
2. 变量名只能_,数字,字母组成,不可以是空格或特殊字符(#?<.,¥$*!~)
3. 不能以中文为变量名
4. 不能以数字开头
5. 保留字符是不能被使用
6.变量名区分大小写

常量 :不变的量 pie = 3.141592653…
在py里面所有的变量都是可变的 ,所以用全部大写的变量名来代表示变量为常量。
5、字符编码
支持中文的第一张表就叫 GB2312
1980 gb2312 6700+
1995 gbk1.0 20000
2000 gb18030 27000
unicode 万国码 支持所有国家和地区的编码
2**16 = 65535 = 存一个字符 统一占用2个字节
UTF-8 = unicode 的扩展集,可变长的字符编码集
Assic -->Gb2312 ->gbk1.0–>gb18030
Assic -->unicode -->utf-8 /utf-16
6、注释
单行注释 用# Ctrl+’/’
多行注释用三个单引号或三个双引号 ‘’‘被注释的内容’’’
7、IndentationError: unindent does not match any outer indentation level
SyntaxError: invalid syntax 语法错误
8、用户交互

在这里插入图片描述

9、if语句
在这里插入图片描述

10、成绩得分

在这里插入图片描述
11、类:概念定义属性,继承
1.面向对象(Object Oriented,OO)概念
面向对象,是我们编程的一种思维。
早期的计算机编程是基于面向过程的方法,例如实现算术运算1+1+2 = 4,通过设计一个算法就可以解决当时的问题。随着计算机技术的不断提高,计算机被用于解决越来越复杂的问题。通过面向对象的方式,将现实世界的事物抽象成对象,现实世界中的关系抽象成类、继承。通过面向对象的方法,更利于用人理解的方式,对复杂系统进行分析、设计与编程。同时也提高了系统的可维护性,可扩展性,可重用性。
(就是使编程的思维,更接近与人的思维和认知)

面向对象编程的关键,就是类的定义。
类是对现实生活中一类具有共同特征的事物的抽象。

2.类的定义

基本形式:
class ClassName(object):
Statement

1.class定义类的关键字
2.ClassName类名,类名的每个单词的首字母大写(驼峰规则)。
3.object是父类名,object是一切类的基类。在python3中如果继承类是基类可以省略不写。
‘’’
重点:学会定义类,了解属性和方法,类的初始化和实例化。
定义类时,这种方法可以使类对象实例按某种特定的模式生产出来。
‘’’
#类方法:
‘’’
后面的参数中第一个参数我们约定俗成的为self参数名,
self代表的是在类实例化后这个实例对象本身。

初始化函数除了有self这个参数表示实例对象本身之外,
其他的参数的定义也遵循函数的必备参数和默认参数一样的原则,
必备参数就是在实例化是一定要传入的参数,
默认参数就是在定义时可以给这个参数一个初始值。没有函数名的函数
‘’’

3.类的实例化

基本形式:实例对象名 = 类名(参数)

在实例化的过程中,self代表的就是这个实例对象自己。

实例化时会把类名后面接的参数传进去赋值给实例,
这样传进去的参数就成为了这个实例对象的属性。

实例化的过程遵循函数调用的原则。
在实例化时也必须个数和顺序与定义时相同(使用关键字参数可以改变传参的顺序)。
当初始化函数定义时使用了默认参数时,在实例化时默认参数可以不传参这时
这个实例对象就会使用默认的属性,如果传了参数进去则会改变这参数值,
使实例化对象的属性就为你传进来的这个参数。

isinstance(实例名,类名)
判断一个实例是不是这个类的实例。

#类 类是对现实生活中,具有共同特征的事物的抽象。

class Animal(object):
pass

object, 基类。 任何类都需要继承object

类 (模子)

class Animal: #python3 继承object,可写可不写
pass
dog = Animal() #生成一个实例 dog
cat = Animal() #生成实例cat

##构造方法 init() , self 参数
class Animal:
def init(self): # 构造方法,实例化对象时,必须要调用__init__
print(‘正在实例化一个类’)

def test(self):
    print('aaa')

#当我们没有写__init__() ,默认调用我们父类__init__
class Animal:

def test(self):
    print('aaa')

###self, 实例化对象(本身)

#self 可以替换成别的参数名。但是最好别改
class TestSelf: #方法 :testSelf 方法的首字母小写 类: TestSelf 类的首字母一般大写 驼峰命名规则
def init(self): #在初始化的时候,默认往构造方法,传入一个值
print(‘正在实例化’)

def test(self):  
    print('bbb')

def test2():
    print('ccc')

4.类和实例的属性

类属性
.类属性是可以直接通过“类名.属性名”来访问和修改。
.类属性是这个类的所有实例对象所共有的属性,
任意一个实例对象都可以访问并修改这个属性(私有隐藏除外)。
.对类属性的修改,遵循基本数据类型的特性:列表可以直接修改,字符串不可以,
所以当类属性是一个列表时,通过任意一个实例对象对其进行修改。
但字符串类型的类属性不能通过实例对象对其进行修改。
当实例对不可变对象进行修改之后,会查找实例的类属性,不会查找类的属性,同时类的属性不会边

实例属性
    .在属性前面加了self标识的属性为实例的属性。
    .在定义的时候用的self加属性名字的形式,在查看实例的属性时
    就是通过实例的名称+‘.’+属性名来访问实例属性。




一些说明:
    .一般,方法第一个参数被命名为self,,这仅仅是一个约定,
    self没有特殊含义,程序员遵循这个约定。
    .查看类中的属性和实例属性可以调用__dict__方法返回属性组成的字典。
    .Python中属性的获取是按照从下到上的顺序来查找属性
    .Python中的类和实例是两个完全独立的对象
    .Python中的属性设置是针对对象本身进行的

####属性, 属性本质上就一个变量
‘’’
1.实例化属性
2.类属性 (共有属性)
‘’’

实例化属性 , self.name

class Animal:
def init(self,name,food): #自己独有的,就放到实例化里面
print(‘正在实例化’)
self.name = name # 实例化属性:每个实例可能不同,但是都有
self.food = food

def get_name(self):
    print(self.name)

#2.类属性 (共有属性)

class Animal:
eye = 2
leg = 4 #共有的
def init(self,name,food):
print(‘正在实例化’)
self.name = name
self.food = food

def get_name(self):
    print(self.name)

5.类的私有属性和方法
在Python中,通过单下划线””来实现模块级别的私有化,一般约定以单下划线””开头的变量、函数为模块私有的,也就是说”from moduleName import *”将不会引入以单下划线”_”开头的变量、函数
对于Python中的类属性,可以通过双下划线””来实现一定程度的私有化。
”和” __”的使用 更多的是一种规范/约定,不没有真正达到限制的目的:
”:以单下划线开头只能允许其本身与子类进行访问,(起到一个保护的作用)
”:双下划线的表示的是私有类型的变量。这类属性在运行时属性名会加上单下划线和类名。
foo”:以双下划线开头和结尾的(foo)代表python里特殊方法专用的标识,如 init()

‘’’
在Python中,通过单下划线””来实现模块级别的私有化,
一般约定以单下划线”
”开头的变量、函数为模块私有的,
也就是说”from moduleName import *”
将不会引入以单下划线”_”开头的变量、函数
‘’’
import random #全部会导入

from random import* #_Set 不会倒入

class Animal:
_eye = 2
__leg = 4 #共有的
def init(self,name,food):
print(‘正在实例化’)
self.name = name
self.food = food

def get_name(self):
    print(self.name)

#_”和” __”的使用 更多的是一种规范/约定,并没有真正达到限制的目的:

dog.eye = 3
#dog.Animal__leg ##
默认加一个类名,用来警告

foo”:以双下划线开头和结尾的(foo

#代表python里特殊方法专用的标识,如 init()

6.数据封装
在类里面数据属性和行为函数的形式封装起来,
访问时直接调用,不需知道类里面具体的实现方法。 比如,list.append

7.继承

用法:
.在定义类时,可以从已有的类继承,
被继承的类称为基类(父类),新定义的类称为派生类(子类)。

.在类中找不到调用的属性时就搜索基类,
 如果基类是从别的类派生而来,这个规则会递归的应用上去。
 反过来不行。

.如果派生类中的属性与基类属性重名,那么派生类的属性会覆盖掉基类的属性。
 包括初始化函数。

.派生类在初始化函数中需要继承和修改初始化过程,
 使用’类名+__init__(arg)’来实现继承和私有特性,也可以使用super()函数。

issubclass(类名1,类名2)
判断类1是否继承了类2

作用:
面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制。
继承完全可以理解成类之间的类型和子类型关系。

子类在重写父类方法之后,如果要继承父类方法中的功能,要先调用父类的方法  class.fun(self)

8.多态
当派生类重写了基类的方法时就实现了多态性。(子类重写父类方法)

面向对象 三个特征: 封装 ,继承 多态

封装

class Animal:
eye = 2
leg = 4 #共有的
def init(self,name,food):
print(‘正在实例化’)
self.name = name
self.food = food

def get_name(self):
    print(self.name)

def get_food(self):
    print(self.food)

继承

#面向对象的编程带来的主要好处之一是代码的重用

class People(Animal):
leg = 2
def init(self,name,food,sex):
self.name = name
self.food = food
self.sex = sex

def get_sex(self):
    print(self.sex)

def speak(self):
    print('asdsdgfsagg')

def eat(self):
    print('果子')

#多态, (子类重写父类方法) ,继承。 (同一个方法,有不同表形式)

class Chinse(People):
def speak(self):
print(‘你好’)

def eat(self):
    print('米饭')

class America(People):
def speak(self):
print(‘hello’)

def eat(self):
    print('面包')

class Thai(People):
def speak(self):
print(‘萨瓦迪卡’)

def eat(self):
    print('香蕉')

xiaoMing = Chinse(‘小明’,‘米饭’,‘男’)

jeck = America(‘jeck’,‘面包’,‘男’)

lala = Thai(‘lala’,‘香蕉’,‘未知’)

‘’’
总结:
1.类的定义
2.init() 构造方法
3.self 参数。 实例对象本身
4.类属性 (共有属性), 实例化属性
5._ __ python 类的私有化。

  1. 面向对象 三大特征: 封装 继承 多态

‘’’

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值