python基础一

《实践出真知》


CTRL + d 或 exit():退出python
ipython3 :可自动补全 也可使用Linux终端命令    exit直接退出
一条一条的执行代码需要加断点 再进入Console
代码后加注释需要两个空格再加#
多行注释:
“”“
zxcvbnm
”“”
// 取整除
% 取余
** 幂


shift f10 调试   shift f9 debug   f8 下一行代码    F7 Step Into 可以进入函数内部单步执行代码

数据类型可分为数字型和非数字型
type() 查看类型

input(“提示信息:”) 以字符串的形式输入
转化:  int(x)   float(x)
格式化字符的输出:%s字符串  %d有符号的十进制整数,%06d表示输出的整数显示位数,不足的地方使用0补全    %.2f 表示小数点后只显示两位    %%输出%
print("苹果单价 %f 元/斤,购买了 %f 斤,需要支付 %f 元" % (price,weight,money))

标识符就是程序员定义的变量名,函数名 (区分大小写)
关键字:内部已经使用的标识符

判断语句
if 要判断的条件:   (代码缩进可用tap键 但tap和空格不能混用)
      ...
   ...
elif 条件2:
   ...
elif 条件3:
   ...
else:
   ...

选中文本:ctrl + / 所有都采用单行注释

逻辑运算: and or not
与运算:  只要有一个不满足就返回false
或运算:  只要有一个成立就返回true
非运算:  条件取反

tab键缩进  shift+tab减少一个缩进

ipython中查看工具包:导入模块后,可以直接再模块名称后面敲一个.然后按tab键,会显示模块中包含的所有函数
random.randint(12,20) 生成随机数12<= n <=20

初始值的设置
while 条件(判断计数器是否达到目标次数):
    条件满足时,做的事情1
    条件满足时,做的事情2
    ... ...
处理条件(计数器 + 1)

c += a   等效于  c=c+a

break 和 continue
break某一条件满足时,"退出循环",不在执行后续重复的代码
continue某一条件满足时,不执行后续的代码,再次跳到条件这里"不退出循环"
例:
i = 0
while i < 10:
    if i == 3:
        i += 1
        comtinue
    print(i)
    i += 1

在默认情况下,print 函数输出内容后,会自动在内容末尾增加换行
如果不希望换行用 print(“*” , end=“”)
单纯的换行 print(“”)

转义字符:
\t  在控制台输出一个制表符,协助在输出文本时垂直方向上保持对齐
\n  换行
\" 可以在控制台输出 "

函数
定义好函数后,只表示这个函数封装了一段代码而已
调用函数:   函数名()
“”“函数说明”“”
CTRL Q 查看函数说明 对任何方法不清楚时,都可以用该方法
在函数的后面的小括号内填写参数
形参: 定义函数时 小括号的参数
实参: 调用函数时 小括号的参数

函数嵌套调用
 
模块: 
每一个以扩展名.py结尾的python源代码都是一个模块,模块中的全局变量和函数都可以使用
pyc 二进制文件

列表:在中括号中储存数据的用“,”分隔     索引,下标 0123456
在ipython中 name_list.按下tab键,ipython会提示列表能够使用的方法

升序排序: name_list.sort() 
降序排序: mane_list.sort(reverse=True)

关键字不用括号,但函数和方法需要 

遍历
迭代遍历iteration遍历:顺序的从列表依次获取数据

元组Tuple与列表相似
info_tuple = (1,2,3)
#取值和取索引
print(info_tuple[0])
print(info_tuple.index(1))
#统计计数
print(into_tuple.count(1))
#统计元组内元素个数
print(len(info_tuple))

元组可与格式化输出连用
info_tuple = ("张三", 2)
print("%s 的年龄是 %d“ % info_tuple)

元组与列表的转换
tuple (列表)
list (元组)

字典  用{}定义
是无序的对象集合
键key是索引   值value是数据
键和值用:分隔
键必须是唯一的
值可以取任何数据类型,但键只能使用字符串,数字或元组
例:
xiaoming_dict = {"name" : "小明"}
#取值
print(xiaoming_dict["name"])
#增加/修改
xiaoming_dict["age"] = 18
xiaoming_dict["name"] = "小小明"
#删除
xiaoming_dict.pop("name")

合并字典
xiaoming_dict.update(字典)
清空
xiaoming_dict.clear()

字符串

公共方法
3 in (1,2,3)

for循环
for num in [1,2,3]:
    print(num)
  if num==2:
     break
else:   # 如果循环体内部使用break退出了循环else下方的代码就不会被执行
    print("")
print("循环结束")

#若for中遍历到了目标则不执行else

框架搭建:
 pass :如果在开发程序时,不希望立刻编写分支内部的代码可以使用pass关键字,表示一个占位符,能够 保证程序的代码结构正确
无限循环 while true

# TODO(小周) todo注释

shift + f6 快捷键修改名

return:若return返回函数则下面的代码不执行,

id() 查看数据地址

可变和不可变数据类型
不可变:数据,字符串,元组
可变:列表,字典
改变可变类型的数据是不改变数据的地址的
字典中的key不能是可变类型数据

在python中是不能直接修改全局变量的。         
在函数中对全局变量的修改global num #对此全局变量进行升级
全局变量只能在调用函数前定义

shebang:#! 来标识用那个解释器来解释代码

如果函数返回时元组可省略括号
可以使用多个变量,一次接收函数的返回结果,变量的个数和元组的个数应相同  #多个变量来接受元组中的值

在函数内部,针对参数使用赋值语句,不会修改到外部的实参变量
在函数内部,使用方法修改数据内容,同样会影响外部数据

在python中,列表变量调用+=本质上是执行列表变量的extend方法

缺省参数
=true #缺省参数的默认值,默认参数为真。

多值参数
参数名前加*可以接收元组  *args
参数名前加**可以接收字典  **kwargs

元组和字典的拆包
元组变量前增加一个*
字典变量前增加两个*

递归

oop:面向对象
类 是对于具有相同特征或行为的事物的一个统称,是抽象的,不能直接使用,是负责创建对象的
对象是由类创建出来的一个具体的存在,可以直接使用。

类的设计:
类名:这类事物的名字,满足驼峰命名法
属性:这类事物具有什么样的特征  (对对象的特征描述)
方法:这类事物具有什么样的行为(动词)

dir内置函数:使用函数dir传入标识符/数据,可以查看对象内的所有属性及方法
__方法名__格式的方法是python提供的内置方法属性。

定义简单的类
class 类名:
    def 方法1 (self, 参数列表):
         pass
  def 方法2 (self,  参数列表):
         pass
创建对象
tom = cat()

%x可以以16进制输出数字

tom.name = “tom” # 利用赋值增加新属性,但一般不这样使用,对象的属性应该封装在类的内部
方法中的self就是调用对象的引用
可以通过self.访问对象的属性也可以通过self.调用其他的对象方法

初始化
__init__方法是专门用来定义一个类具有那些属性的方法 (初始化方法)
self.属性 = 形参  #用此来输入
__del__方法 变量生命周期结束时会自动调用该方法  
__str__方法用print打印一个对象变量时希望在控制台看到一些自定义信息,必须返回一个字符串 (描述方法)

封装案例
同一类创建的多个对象之间,属性互不干扰
一个对象的属性可以是另一个类创建的对象

None什么都没有
身份运算符: is/is not   is是判断两个标识符是不是引用同一个对象  x is y类似id(x)==id(y)  ==:是判断内容的
 
私有属性和私有方法:在属性名或方法名前增加两个下划线(不希望对外界公开的)在外界不能够直接访问,在对象方法内部可以访问对象的私有属性。

继承
实现代码的重用,子类拥有父类的所有属性与方法
class 类名(父类名):
    pass
1)覆盖父类的方法
如果子类中,重写了父类的方法。在使用子类对象调用方法时,会调用子类中重写的方法
2)对父类方法的扩展
使用super(). 调用父类中的调用方法
super().bark()  #调用父类中的bark()方法

父类的私有属与私有方法
class A:
    def __init__(self):
     self.num = 100
     self.__num1 = 102  #私有属性/方法

class B(A):
在子类的对象方法中,不能访问父类的私有属性私有方法。但可以访问父类的公有属性公有方法
但子类对象可以通过父类的公有方法间接访问到私有属性或私有方法

多继承
子类可以拥有多个父类
class 子类名(父类名1, 父类名2 ...)  #注意继承顺序
    pass

多态
不同的子类对象调用相同的父类方法,产生不同的执行结果(重写父类方法)
 
实例
由类创建出来的实实在在的存在
类属性 就是给类对象中定义的属性
访问类属性: 类名.类属性

类方法: 
calss Tool(object):
    count = 0
@classmethod   #类方法
def show_tool_count(cls)
    print("工具对象的数量 %d"  cls.count)
def __init__(self, name)
    self.name  = name
    Tool.count +=1

静态方法(不访问类属性,也不访问实例属性)
@staticmethod

方法综合应用:
class game(object):
     # 类属性
     top_score = 0
  #实例属性
    def __init__(self, player_name):
  #  静态方法
     @staticmethod
    def show_help():
      print("帮助信息:让僵尸进入大门")
   #类方法
   @classmethod  
      def show_top_score(cls):
      print("历史记录 %d" % cls.top_score)
     #实例方法
      def start_game(self):
       print("%s 开始游戏啦..." % self.player_name
# 查看游戏的帮助信息
Game.show_help()
# 查看历史最高分
Game.show_top_score()
#创建游戏对象
game = Game(“小明”)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值