python基础

1.变量

变量名,变量类型,变量值

变量都是存储在内存中的

以酒店房间为例

变量  =  酒店的房间

变量名 = 房间号

变量类型 = 酒店的总统房、经济房

变量值 = 房间里入住的人

 

2.注释

单行注释 #

多行注释 ''' 代码 '''

 

3.变量的类型

整型,浮点型,字符串,布尔型,空值

整型:整数  age=18

浮点型:小数 pi = 3.14

字符串:带有单引号,或者双引号的  str = '13'  这也是字符串

            制表符: \t 空格  \n换行,    如果要输出制表符在前面加r    name=r'zx\nd'

布尔类型:只有两个值 true  false

                  可以进行 and or not 运算

空值:只用None表示

 

4.数据类型转换

type()  查看数据类型

转换为整型    int()    

       注意:并不是所有的任意值都可以转换,必须是形态一致才可以转换

       例如:'hello'  这样的肯定是不能转换成整型的

转换为浮点型  float()

转换为布尔类型   bool()    空字符串,0,None会转换为false, 其他的都会转换为true

       注意:空值("  ")转换为布尔,为true

转换为字符串   str()

 

5.运算符

python支持4种运算符: 算术运算符  赋值运算符  比较运算符  逻辑运算符

一.算术运算符

     加 (+)减(-)乘(*)除(/ 或者 //) a的b次方 (a**b)

     除  / 当除不开时,保留后面的小数

         //  当除不开时,不保留后面的小数

 

二.关系运算符

关系运算符得到的结果都为布尔值

     ==  等于

    !=  不等于

    >   大于

    <  小于

    >=  大于等于

   <=   小于等于

 

三.赋值运算符

=  简单的赋值运算符

+=  加法赋值运算符

-=  减法赋值运算符

*=  乘法赋值运算符

/=  除法赋值运算符

%=  取余赋值运算符

**=  幂赋值运算符

//=  取整除赋值运算符

 

四.逻辑运算符

与(and),或(or),非(not)

与 and 两边为true 才为true

或 or 两边只要有true,就为true

非not ,取反

 

 

6.容器

概念:日常生活中需要很多瓶瓶罐罐的来装我们的各种物品,在程序里,我们可以把数据看做我们的物品,也可以用一些容器装起来

 

一,列表(最常用的容器)

列表相当于其他语言里的数组

a=[1,2,3,'hello',3.14,False]  

类型为:list

列表是有序的集合,所以就有了索引的概念,索引就是列表里元素的下标,从0开始

     1.所以就可以取出列表里的元素   a[3]

     2.修改列表里的值  a[3]='张三'

     3.对列表取数据时,可以部分取,也叫做切片,可以正向切片,也可以逆向切片

        正向切片  a[2:4]    逆向切片  a[-4:-2] 

    4.对列表,添加元素,而且是添加到列表的最后   a.append('xxx')

       如果不想在列表的最后添加,想在具体的位置添加  a.insert(3,'zzz')   前面是要添加的位置,后面是要添加的值

    5.删除列表里的元素  a.remove('xxx')

      如果删除元素时,不知道值,只知道位置,可以通过 del a[4]   或者 a.pop(5)

    6.获取列表的长度,  len(a)

 

二.元组(不常用)

  与列表相同之处:元组数据结构与列表类似,其中元素可以有不同的类型

  与列表不同之处:元组中的元素是不可改变的,一旦初始化之后,就不能再修改

 

使用 :使用场景,让别人用,但是不能进行修改,就可以定义成元组

     1.元组的定义

       tuple=()

      2.元组也可以取值

      3.元组也可以进行切片取值

      4.不能进行添加元素,删除元素

      5.元组可以获取长度  len(tuple)

    

三.字典,在其他语言相当于  相关数组

  概念:字典(dict)在其他语言中被称为哈希映射(hash map)或者 相关数组

字典是一种大小可变的键值对集,其中的键(key)和值(value)都是python对象

字典用在需要高速查找的地方

 

使用

     1.定义字典     

   a={'name':'xxx','age':14,'hobby':'篮球'}

     注意:字典的键是不允许重复的,值可以重复

    2.获取字典里的值

    a['name']

 

四.集合(不常用)

概念:集合是一种无序集,它是一组键的集合,不存储值,并且不能有重复

所以集合的作用,就会起到一个去重的作用

还可以求两个集合的不同部分,相同部分,两个集合的所有值

使用

     1.定义集合

      a={1,2,3,'xxx'}

      b=set([1,2,3,'xxx'])

a={1,2,3,4,5,6}
b={4,5,6,7,8,9}

print(a-b) #集合的差集  {1, 2, 3}
print(a|b) #集合的并集  {1, 2, 3, 4, 5, 6, 7, 8, 9}
print(a&b) #集合的交集  {4, 5, 6}
print(a^b) #集合的对称差  {1, 2, 3, 7, 8, 9}

 

编程的解构:顺序解构,选择解构,循环解构

7. if解构

if 判断条件:

    执行语句

elif多条件判断

if cunkuan>100:
    print('宝马')
elif cunkuan>50:
    print('丰田')
elif cunkuan>20:
    print('二手车')
else:
    print('破自行车')

 

嵌套if结构

#嵌套if结构
cunkuan=100
zizhu=20
if cunkuan>=100:
    print('宝马')
    if zizhu>50:
        print('买一辆宝马740')
    elif zizhu>30:
        print('买一辆宝马520')
    elif zizhu>20:
        print('买一辆宝马320')
    else:
        print('还是去二手车市场把')
elif cunkuan>50:
    print('丰田')
elif cunkuan>20:
    print('二手车')
else:
    print('破自行车')

 

8.循环

一.for循环

    for i in range(100):

           print(xxx)

 

continue : 结束本次循环,直接 开始下一次循环

break :提前结束整个循环

 

二.while循环

n=0
while n<10:
    n=n+1
    if n%2==0:
        continue
    print(n)

三.无限循环

import time
i=0
while 1==1:
    print(i)
    i=i+1
    time.sleep(2)

 

9.函数

函数其实就是方法

def 函数名():

     函数题

     return

函数名()  函数的调用

 

函数的传参有4种形式

第一种顺序传参

def show(name,age,sex,hobby):
    print('我叫:',name,'年龄:',age,'性别:',sex,'爱好:',hobby)

#顺序传参
show('张三',20,'女','唱歌')

第二种关键词传参

#关键词传参

#注意,前面使用了关键词传参,后面再用顺序传参,就会出现错误 #所以就要统一,要么都使用关键词传参,要么都使用顺序传参

def show(name,age,sex,hobby):
    print('我叫:',name,'年龄:',age,'性别:',sex,'爱好:',hobby)
show('张五',20,hobby='唱歌',sex='男')

第三种默认传参

注意:默认参数要放在末尾

def show(name,sex,hobby,age=20):
    print('我叫:',name,'年龄:',age,'性别:',sex,'爱好:',hobby)
show(name='张三',sex='男',hobby='跳舞',age=31)

第四种不定长参数

#不定长参数
def add(*args):
    sum=0
    for i in args:
        sum=sum+i
    return sum

result=add(3,345,567,4,5,676)
print(result)

 

函数还有很多内置函数,需要用到的时候可以再查资料

 

10.模块

概念:模块是Python中的最高级别组织单元,它将程序代码和数据封装起来以便重用,

作用:1.代码重用   2.实现共享服务和数据

import random

result=random.random()
result1=random.choice(['张三','李四','王五','赵柳'])
print(result1)

 

引入模块
可以引入模块的某个方法
还可以引入某个模块的多个方法
还可以引入某个模块的所有方法
还可以自己定义函数,来引入
from random import choice
from random import choice,random
from random import * #引入random里面的所有方法

print(choice([1,2,3,4,5,6]))
print(random())

非常实用的模块

from urllib import request #这个是用来做爬虫的
import os #用来控制操作系统的
import webbrowser #用来控制浏览器的
#爬虫
url='http://www.baidu.com'
data=request.urlopen(url).read()
print(data.decode())
#打开某个程序
os.system('"C:\Program Files\Tencent\QQLive\QQLive.exe"')

#给文件重命名
os.rename(r'C:\Users\Administrator\Desktop\简历.pdf',r'C:\Users\Administrator\Desktop\简历1.pdf')
#在浏览器打开某个网页
webbrowser.open('http://www.baidu.com')

安装第三方库 

      pip install 库名

 

 

11.文件读取

#打开文件
fh1=open(r'C:\Users\Administrator\Desktop\再别康桥.txt','r',encoding='UTF-8')
#进行读取文件
data=fh1.read()

#按行读取
data1=fh1.readline()
data2=fh1.readline()

#按行读取所有
datas=fh1.readlines()

#读取大文件
for i in fh1:
    print(i)
#print(data)
#print(data1)
#print(data2)
#print(datas[4])
#文件操作完毕后,关闭文件资源
fh1.close()

 

文件写入

#如果文件存在,就重新写入
#如果文件不存在,则新建一个文件并写入
fh=open(r'C:\Users\Administrator\Desktop\test.txt','w',encoding='UTF-8')
#追加写入 a --- append 文件追加
fh=open(r'C:\Users\Administrator\Desktop\test.txt','a',encoding='UTF-8')

data='\n软件测试'

fh.write(data)

二进制文件的读写

#所有文件分为两大类
#1.文本文件 txt xml
#2.二进制文件 图片,视频,Word文档,excel文档

#二进制文件的读
fh=open(r'C:\Users\Administrator\Desktop\下载.jpg','rb')

data=fh.read()

print(data)

fh.close()

#二进制文件的写
fh2=open(r'C:\Users\Administrator\Desktop\02.jpg','wb')

fh2.write(data)

fh2.close()



12.面向对象

对象:时间万事万物皆为对象

类:是指某一类东西, 例如:桌子,宠物

属性:这个对象有的一些特征,比如桌子,有长宽高,木质等等

方法:就是能有什么作用,例如桌子,可以吃饭,打麻将

对象的特点:封装,继承,多态

 

创建类

#创建类,类名首字母要大写
class Dog():
    
    #初始化方法
    def __init__(self,name,age,color):
        #实例变量(属性)
        self.name=name
        self.age=age
        self.color=color
        
    #普通方法
    def eat(self):#普通方法
        print(self.name,'在啃骨头!')
        
    def run(self):
        print(self.name,'在飞快的跑')

实例化对象

#实例化对象
dog=Dog('小黑',5,'白色')

dog.color='黑色'

print(dog.color)

dog.run('5m/s')

 

 

类的封装,可以封装方法里的属性,还可以封装普通的方法,就是在属性或方法名前加双下划线

#创建类
class Card():

    #初始化
    def __init__(self,num,pwd,ban):
        #卡号
        self.num=num
        #密码
        self.pwd=pwd
        #余额
        #现在把余额属性变为私有属性(只能在类的内部被访问)
        # 这也叫做类的封装
        self.__ban=ban

    #创建一个普通的存款方法
    def cun(self):
        print('存款!')

    #创建一个获取余额的方法,并把余额return出去
    def getBan(self,numm,pwdd):
        if numm==self.num and pwdd==self.pwd:
            return self.__ban
        else:
            return '输入错误'
        
    #还可以将类里的普通方法进行封装
    def __qukuan(self):
        return 
        

card=Card(1001,123456,"10000")

print(card.getBan(1001,123456))

 

类的继承

#创建动物类 继承了object类
#object类是原始的类
class Animal(object):

    #初始化方法
    def __init__(self,color):
        self.color=color

    #创建普通的方法
    def eat(self):
        print('动物在吃饭!')

    #创建普通的方法
    def run(self):
        print('动物在奔跑!')

#创建猫类
#猫类继续了Animal类
class Cat(Animal):
    pass

#进行实例化对象
cat=Cat('白色')
print(cat.color)
cat.eat()
cat.run()

注意点:当子类有方法时就用子类的,当子类没有这个方法就去看父类的

 

 

13.异常

#写可能会报错或者是出现异常的代码
    try:
        print(3/i)
#捕获try语句里面的异常, exception 就是捕获到的异常对象
    except Exception as e:
        print('出现错误,错误是:',e)

#没有异常时执行的语句
    else:
        print('--------正常')

#无论是否有异常,都会执行的语句
    finally:
        print('本次结束')

常见的错误类型:

#NameError 这是比较常见的一个错误,就是没有定义变量就把它拿来使用
#SyntaxError 语法错误,例如少个冒号,少空格等
#IO Error 在做文件操作的时候常遇到的错误,例如文件操作的时候文件不存在
#ZeroDivisionError 在做数据处理和计算的时候会遇到这种错误就是除数是 0
#IndentationError 这个就是缩进问题

自定义异常

pwd='123456789'
if len(pwd)<8:
    ex=Exception('密码不能低于8位数!')
    #抛出自定义的异常
    raise ex
else:
    print('密码设置成功!')

 

14.进程

进程简单来说,就是程序执行的动作以及状态

有三个状态:

1.就绪   其实就是获取了除CPU外的所有资源,只要处理器分配资源就可以马上执行

2.运行   获得了处理器分配的资源,程序开始执行

3.阻塞   当程序条件不够的时候,需要等待条件满足时候才能执行,如等待i/o操作的时候

 

线程是进程下的更小的一个单位

通俗讲:一个程序,至少有一个进程,而一个进程下最少有一个线程

而一般都是多线程同时运行,来提供效率

 

import threading
import time

def run(name):
    print(name,'线程执行了')
    time.sleep(5)

#程序执行时,程序本身就是一个线程,叫主线程
#手动创建的线程,叫子线程
#主线程的执行中不会等待子线程执行完毕,就会直接执行后面的代码
t1=threading.Thread(target=run,args=('t1',))
t2=threading.Thread(target=run,args=('t2',))

#启动线程
t1.start()
t2.start()

#设置子线程执行完毕之后再执行主线程内容
t1.join()
t2.join()

print('执行完毕')

 

 

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值