zoukankan      html  css  js  c++  java
  • Python第一讲以及计算机基础

    本周课程安排

    • python基础(五天)

    下周课程安排

    • tableau图形化表制作

    下下周课程安排

    • spss

    今日内容概要

    • 计算机发展史
    • 计算机主要硬件
    • 编程与编程语言
    • python解释器及IDE编辑器的下载及安装
    • python基本语法
    • 变量
    • 常量
    • 基本数据类型

    今日内容详细

    计算机

    代替人力做事情
    
    任何先进的技术基本都是来源于战争(军事)
    
    现代计算机最先是由美国人发明
    
    现代计算机从19060年代之后才有了真正雏形
    

    计算机硬件

    # 人类发明计算机的目的就是为了奴役计算机 代替人去干活
    """
    在奴隶主时代
    	有钱的人为了偷懒不想干活,花钱雇佣奴隶帮他干活
    奴隶主时代结束
    	有钱人不能再奴隶人了所以转向奴役机器
    在这个大的背景下计算机应运而生
    	计算机就是为了解放人力
    """
    计算机又叫电脑
    
    计算机虽然叫电脑但是计算机所有的操作都是人告诉它的,它自己不会自动帮你做任何一件事
    哪怕是一个显示灯的亮灭
    
    '''五大组成部分'''
    1.控制器
    	类似于人的大脑
        用来控制计算机各个硬件的运作
    2.运算器
    	类似于人的大脑
        用来做数学运算和逻辑运算
        	数学运算就是数字的加减乘除等
            逻辑运算则是判断事物对错的能力
    控制器 + 运算器 = 中央处理器(CPU)
    # 即计算机真正帮你干活的其实是计算机里面的CPU(核)
    比如手机有八个核,说明同一时刻可以有八个人帮你执行八个任务
    
    3.存储器
    	内存	类似于人的短期记忆
        	容量有限(4G、8G、16G、32G...)、但是存储数据的速度非常快
        	基于电来存储数据的(断电数据立刻丢失)
            所以内存绝对不能用来永久保存数据(重要的数据不能指望在内存中永久保存)
            eg:
                以前的文本编辑器在编辑文档的时候需要你不停的点击保存,因为一旦断电数据立刻丢失
                为什么现在的文本编辑器不会出现以前的情况呢?那是因为程序员在文本编辑器的内部帮你加了一个实时自动保存数据的功能  
            
        外存	类似于人的长期记忆
        	都能够永久的保存数据、但是存储速度较于内存要慢很多
        	u盘、磁盘、硬盘、磁带
    		容量可以做到非常的大(500G、1T、2T)
            (重要的数据只能指望在外存中永久保存)
    
    4.输入设备
    	类似于人的眼睛、耳朵
    	向计算机传达信息的工具
        鼠标、键盘、触摸屏、麦克风...
        
    5.输出设备
    	类似于人说的话、写的字
        计算机向外界传达信息的工具
        显示屏、打印机、音响
    
    """
    人做数学试卷
    用手拿卷子(控制器)
    用眼睛看试卷内容(输入设备、内存)
    用脑袋思考解题(运算器)
    用笔将答案写到纸上(输出设备、外存)
    """
    

    计算机三大核心硬件

    1.CPU
    
    2.内存
    
    3.硬盘
    """
    任何一款软件的运行都必须经历上述三个硬件
    
    你在你的计算机上面下载的软件其实都是下载到了你计算机里面的硬盘中
    下载完毕之后要想让该软件运行起来 需要双击
    
    双击其实就是将硬盘里面的软件代码由硬盘读取到内存中(任何软件的运行代码必须在内存)
    
    CPU就会去内存中读取软件代码(取指)执行,然后软件就运行起来了
    """
    为什么CPU需要跟内存打交道而不是直接去硬盘中读取指令?
    	CPU的执行速度非常快、而硬盘的存储速度较慢
        所以如果让CPU直接跟硬盘打交道那么会极大地降低CPU的执行效率(利用率)
        而内存的存储数据的速度非常快几乎跟CPU运行速度差不多
        将一辆兰博基尼和一辆奇瑞qq同时放在北京内环道路上
        	兰博基尼马力再大也得跟我奇瑞qq一起堵着
        如果将兰博基尼和qq放到赛道上
        	两者速度立马出现差异
    

    操作系统

    windows系统、mac系统、linux系统、ubuntu系统...
    
    这三个都想让计算机帮他们在显示屏上面显示一行话
    在没有操作系统的情况下你需要编写控制计算机所有微小硬件的代码
    用户1
    	1.需要编写一套控制计算机能够正常启动的程序(显示灯、二极管、风扇、磁盘...)
        2.基于上面的成果让计算机显示一句话
    用户2
    	1.需要编写一套控制计算机能够正常启动的程序(显示灯、二极管、风扇、磁盘...)
        2.基于上面的成果让计算机显示一句话
    用户3
    	1.需要编写一套控制计算机能够正常启动的程序(显示灯、二极管、风扇、磁盘...)
        2.基于上面的成果让计算机显示一句话
    # 编写控制计算机硬件运作的程序需要消耗非常多的时间(几年甚至几十年)
    
    
    计算机硬件大致都是相同的,也就意味着不需要重复的书写控制计算机硬件运作的程序只需要有一套完善的控制系统即可
    	微软公司的windows操作系统
    
    操作系统其实就是用来帮助我们控制计算机硬件的,用户不需要自己直接控制了,只需要告诉操作系统即可,操作系统类似于中介
    
    
    # 现在我们所使用的软件都必须跑在操作系统之上,没有操作系统的话所有的软件都跑不起来。这也是为什么你买了一台计算机之后首先需要做的事情就是安装一个操作系统
    

    计算机三层架构

    1.应用程序(日常使用的软件qq、微信、王者、吃鸡...)
    	
    2.操作系统
    
    3.计算机硬件
    """
    应用程序必须跑在操作系统之上
    由操作系统跟计算机硬件交互
    	计算机硬件处理后的数据也是交给操作系统由操作系统再交给应用程序
    	
    	1  <==>  2   <==>   3
    """
    

    编程及编程语言的概念

    python、java、php、c++、c#、golang都叫编程语言
    语言
    	汉语、英语、西班牙语、俄语
        语言是人与人之间沟通交流的媒介
    编程语言
    	编程语言其实就是人与计算机之间沟通交流的媒介
       
    即学习编程语言跟我们学习一门外语是一模一样的
    	把英语学会了就可以跟外国人交流
        把编程语言学会了就可以跟计算机交流
        即学习编程语言没有你想象的那么难!!!
        
     
    编程
    	大白话就是学代码
        其实就是人将自己的思维逻辑和想法用编程语言的形式写下来的过程
        (其实跟你用英文写作文差不多)
       
    其实说英语和写编程语言本质都是一样的,只要你足够的熟练那么就可以做到脱口而出
    

    编程语言的分类

    补充知识点

    """
    计算机是基于电工作的,而电信号只有高低电平两种状态
    	我们人为的将高电平记为1
    	低电平记为0
    	也就意味着计算机只认识0和1(二进制)
    为了能够记录世间万物、我们用很多位组成在一起
    	2的8次方		256
    	2的16次方		65535
    	2的24次方
    	....
    """
    
    1.机器语言
    	计算机能够直接读懂的语言(就是二进制)
        0101010101010101010101010101010101010101010101010101010101010101010101011010101
        好处:计算机能够立刻明白你的意思、执行速度非常快
        坏处:学习难度太大、编程难度和时间太长
        
    2.汇编语言
    	用简单的英文单词abc代替一串二进制数据
        a			010101010
        b 			010101011
    	好处:记忆的难度有所降低、执行速度也非常快
        坏处:编写和学习的难度还是偏大
            
    3.高级语言
    	用人类能够读懂的语言来编写程序
        print			打印
        input			输入
        好处:学习难度大大降低、编程效率大大提高
        坏处:计算机看不懂,需要做一次翻译(将人类看得懂的翻译成计算机看得懂)
    """
    我们现在所学习的编程语言都是高级语言
    """
    

    翻译

    1.编译型		C++
    	类似于谷歌翻译(将需要翻译的东西一次性翻译完毕)
    	一次性翻译之后就可以拿着翻译之后的结果多次使用
        好处:执行速度较于解释型更快
        坏处:
            1.不同的平台编译之后的结果不能混用(跨平台性较差)
    		2.出现bug之后修改bug又得从头到尾重新翻译一遍(修改bug效率低)
    
    
    2.解释型		python、php(昙花一现)
    	类似于同声传译(说一句我翻译一句)
        好处:	
            1、只要有解释器那么不需要考虑跨平台的问题
            2、修改bug方便
        好处:
            执行速度比不上编译型但是开发效率较快
    

    为何选择python

    1.为什么不学java
    	java在中国已经存在了十几年了,市面上会java的人非常非常非常的多
        并且java的难度对于小白来说基本可以不考虑
     	市场对于java需求基本已经饱和,java的起步薪资也很低
       
    2.为什么不学c和c++
    	c和c++比java还难,并且需要几年的沉淀期
       
    3.为什么学python	
    	应用领域是目前所有其他编程语言望尘莫及的  
    	#1. WEB开发——最火的Python web框架Django, 支持异步高并发的Tornado框架,短小精悍的flask,bottle, Django官方的标语把Django定义为the framework for perfectionist with deadlines(大意是一个为完全主义者开发的高效率web框架)
    	#2. 网络编程——支持高并发的Twisted网络框架, py3引入的asyncio使异步编程变的非常简单
    	#3. 爬虫——爬虫领域,Python几乎是霸主地位,ScrapyRequestBeautifuSoapurllib等,想爬啥就爬啥
    	#4. 云计算——目前最火最知名的云计算框架就是OpenStack,Python现在的火,很大一部分就是因为云计算
    	#5. 人工智能——谁会成为AI 和大数据时代的第一开发语言?这本已是一个不需要争论的问题。如果说三年前,Matlab、Scala、R、Java 和 Python还各有机会,局面尚且不清楚,那么三年之后,趋势已经非常明确了,特别是前两天 Facebook 开源了 PyTorch 之后,Python 作为 AI 时代头牌语言的位置基本确立,未来的悬念仅仅是谁能坐稳第二把交椅。
    	#6. 自动化运维——问问中国的每个运维人员,运维人员必须会的语言是什么?10个人相信会给你一个相同的答案,它的名字叫Python
    	#7. 金融分析——我个人之前在金融行业,10年的时候,我们公司写的好多分析程序、高频交易软件就是用的Python,到目前,Python是金融分析、量化交易领域里用的最多的语言
    	#8. 科学运算—— 你知道么,97年开始,NASA就在大量使用Python在进行各种复杂的科学运算,随着NumPy, SciPy, Matplotlib, Enthought librarys等众多程序库的开发,使的Python越来越适合于做科学计算、绘制高质量的2D和3D图像。和科学计算领域最流行的商业软件Matlab相比,Python是一门通用的程序设计语言,比Matlab所采用的脚本语言的应用范围更广泛
    	#9. 游戏开发——在网络游戏开发中Python也有很多应用。相比Lua or C++,Python 比 Lua 有更高阶的抽象能力,可以用更少的代码描述游戏业务逻辑,与 Lua 相比,Python 更适合作为一种 Host 语言,即程序的入口点是在 Python 那一端会比较好,然后用 C/C++ 在非常必要的时候写一些扩展。Python 非常适合编写 1 万行以上的项目,而且能够很好地把网游项目的规模控制在 10 万行代码以内。另外据我所知,知名的游戏<文明> 就是用Python写的
        中国的浙江和山东已经将python作为计算机考试科目
    

    python解释器

    '''
    在IT行业,不会轻易的尝试最新版本的软件
    '''
    python2.X
    	最高版本只到python2.7并且该版本在2020年之后就已经不再维护更新了
    	推荐你使用python3.X版本
        
    python3.X
    	最高版本python3.8
        但是我们不使用最新版,一般推荐使用3.6版本
        
    去官网下载一步步点击next安装即可(你只需要记住你将解释器下载到哪个位置即可)
    

    IDE编辑器下载

    pycharm下载需要注意
    	下载professional不要下载communitity
    
    需要破解
    	1.用我给你的连接下载激活码破解
        2.用我给你的压缩文件解压拖拽破解
    
    安装直接点击next即可
    

    文件后缀名

    """
    .txt
    .pdf
    .ini
    .word
    .xslx
    .mp4
    """
    文件的后缀名是干嘛使得?
    	仅仅是给人看的,对于计算机来说都是二进制没有区别
    不同的后缀名文件有不同的功能
    	程序员针对不同的后缀名自己写的对应的功能
     
    针对python代码存储的文件
    	我们的后缀名叫.py
    

    变量

    变量即变化的量,核心是“变”与“量”二字,变即变化,量即衡量状态
    程序执行的本质就是一系列状态的变化,变是程序执行的直接体现,所以我们需要有一种机制能够反映或者说是保存下来程序执行时状态以及状态的变化
    
    姓名 = 'jason'
    年龄 = 18
    身高 = 1.83
    
    '''
    定义变量的固定规律
    变量名 = 变量值
    
    1.变量名就是状态描述
    2.=赋值符号
    3.变量的值
    '''
    username = 'jason'
    '''
    1.先在内存空间中申请一块内存空间存放jason
    2.然后将username指向jason所在的内存地址
    	之后如果你想要访问jason就需要通过变量名username访问即可
    '''
    
    
    # 变量名的命名规范
    1.变量名只能是数字、字母、下划线组合
    2.数字不能开头
    3.变量名一定要起的见名知意
    4.不要用关键字作为变量名
    
    # 变量的命名风格
    1.大驼峰
    	UserName = 'jason'
    2.小驼峰
    	userName = 'jason'
    3.下划线	python推荐使用下划线
    	user_name = 'jason'
        
    # 变量三要素
    id		类似于变量名指向的变量值的内存地址
    type	变量名指向的变量值的数据类型
    value	变量名指向的变量名
    
    username = 'jason'
    print(id(username),type(username),username)
    2192720183456 <class 'str'> jason
    

    常量

    常量即指不变的量,如pai 3.141592653..., 或在程序运行过程中不会改变的量
    举例,假如老男孩老师的年龄会变,那这就是个变量,但在一些情况下,他的年龄不会变了,那就是常量。在Python中没有一个专门的语法代表常量,程序员约定俗成用变量名全部大写代表常量
    AGE_OF_OLDBOY = 56
    #ps:在c语言中有专门的常量定义语法,const int count = 60;一旦定义为常量,更改即会报错 
    
    
    在python中没有真正意义上的常量,默认是将全大写的变量看成是常量
    HOST = '127.0.0.1'
    
    HOST = '127.0.0.1'
    print(HOST)
    HOST = 666
    print(HOST)
    

    输入与输出

    # 输入
    input()
    # 输出
    print()
    
    username = input('请输入一些内容>>>:')  # 获取用户输入并赋值给username
    print(username)  # jason
    print(username)  # jason
    

    注释

    """对代码的解释型描述"""
    1.单行注释
    	# 单行
    2.多行注释
    	'''我是多行注释'''
    	"""我也是"""
       
    在pycharm中如何快速的完成注释
    ctrl+?键
    

    数据类型

    # 数据即变量的值,如age=18,18则是我们保存的数据。
    # 变量的是用来反映/保持状态以及状态变化的,毫无疑问针对不同的状态就应该用不同类型的数据去标识
    
    • 整型
    • 浮点型
    • 字符串
    • 列表
    • 字典
    • 布尔值
    • 元组
    • 集合
    # 整型	int
    定义:age=10 
    用于标识:年龄,等级,qq号
    
    # 浮点型	float
    定义:salary=3.1
    用于标识:工资,身高,体重
    
    # 字符串	str
    # 在python中,加了引号的字符就是字符串类型
    定义:name='jason'
    用于标识:描述性的内容,如姓名,性别,国籍,种族
    username = 'jason'
    username1 = "jason"
    username2 = '''jason'''
    username3 = """jason"""
    当三引号左边没有赋值符号的时候它们就是注释有赋值符号就是字符串了
    
    定义字符串之所有有这么多种定义的方式是因为字符串内部可能也需要使用到引号
    info = '他说:"她是个好菇凉"'
    
    
    # 列表  list
    在[]内元素与元素之间用逗号分隔,可以存放n个任意类型的值
    name_list = ['jason','tank',11,22.22]
    print(type(name_list))
    # 列表能够存多个元素 并且还可以方便的取任意单个或者多个元素
    print(name_list[1])  # 索引取值(索引是从0开始)
    
    
    # 字典	dict
    能够精确的存储数据、并且是我们后面使用最频繁的一个数据类型
    即可以存放多个任意类型的值,又可以硬性规定值的映射关系的类型,比如key=value,这就用到了字典
    在{}内用逗号分隔,可以存放多个key:value的值,value可以是任意类型
    user_info = {
        'username': 'jason',
        'age': 18,
        'hobby': ['read', 'study', 'music', 'running']
    }
    username、age、hobby都是字典的key
    jason、18、[...]都是字典的value
    	key是都value的描述性的信息 一般情况下都是字符串
        value是任何数据类型,你要想访问到value必须通过key
    print(user_info['hobby'])
    
    
    # 布尔值	bool
    用来判断对错的,只有两种状态 对/错
    此处的布尔类型就模拟人的逻辑运行,即判断一个条件成立时,用True标识,不成立则用False标识
    True
    False
    # is_right = True
    # is_error = False
    # print(type(is_right),type(is_error))
    a = 3
    b = 5
    print(a > b)
    print(a < b)
    
    # 所有数据类型都自带布尔值
    1、None,0,空(空字符串,空列表,空字典等)三种情况下布尔值为False
    2、其余均为真 
    
    
    # 元组	tuple
    你可以把元组看成是不变的列表		小括号内可以有多个元素 逗号隔开 
    user_tuple = ('jason','tank',1,2,3,4)
    元组内的元素不能被修改
    user_list = ['jason','tank',1,2,3,4]
    user_tuple = ('jason','tank',1,2,3,4)
    user_list[0] = 'jason666'
    print(user_list)
    print(user_tuple[0])
    user_tuple[0] = 'jasonNB'  # 无法修改
    print(user_tuple)
    
    
    # 集合	set
    也是用的{},跟字典不一样的地方在于集合{}内元素元素之间直接用逗号隔开没有key:value键值的概念
    1.去重
    2.关系运算
    s = {1,2,3,4,5,6,7,8,9,0}
    print(type(s))
    为了舒适的结果,眼前的坎坷路程即使再长都是值得的。
  • 相关阅读:
    论文笔记:目标检测算法(R-CNN,Fast R-CNN,Faster R-CNN,FPN,YOLOv1-v3)
    论文笔记:IRGAN——A Minimax Game for Unifying Generative and Discriminative Information
    springer论文模板参考文献的顺序问题
    CIFAR和SVHN在各CNN论文中的结果
    论文笔记:CNN经典结构2(WideResNet,FractalNet,DenseNet,ResNeXt,DPN,SENet)
    latex常用符号
    python中的引用传递,可变对象,不可变对象,list注意点
    ImageNet历年冠军和相关CNN模型
    matplotlib 的颜色
    调整matplotlib的图例legend的位置
  • 原文地址:https://www.cnblogs.com/abudrSatan1998/p/13426969.html
Copyright © 2011-2022 走看看