day01 计算机基础和环境搭建

news2025/4/9 10:36:14

day01 计算机基础和环境搭建

课程目标:让大家了解计算机基础知识并完成python的环境搭建

课程概要:

  • 计算机基础

  • 编程的本质

  • python的介绍

  • python环境的搭建

1.计算机基础

1.1 基本概念

  • 计算机的组成

    计算机的组计算机是由多个硬件组合而成,常见的硬件有:CPU、硬盘、网卡、内存、显示及。机箱、电源...
    注意事项:机械将零件组合在一起,他们之间是无法进行协作。
    
  • 操作系统

    用于协调计算机的各个硬件,让硬件之间进行协同工作,以完成某个目标。
    常见的操作系统分类:
    - windows,优点:生态牛逼、工具多;缺点:略慢、收费。【个人】
    	- xp
    	- win7
    	- win10
    	...
    - linux,优点:资源占用少、免费(很多公司的服务器上安装Linux);缺点:工具少、告别游戏。【企业的服务器】
    	- centos
    	- ubuntu
    	- redhat
    	...
    - mac,优点:生态还行、工具差不多都有、用户体验和交互; 缺点:不能玩游戏
    
  • 软件

    在安装上操作系统之后,我们会在自己电脑上安装一些常用的软件,例如:QQ、杀毒、微信...
    
    问题来了:这些软件是由谁开发的?是由各大公司的程序员开发的。
    
    以后的你肯定是写`软件`,可以把软件理解成为一大堆的代码(一篇文章)。
    

1.2编程语言

软件,是由程序员使用 编程语言 开发出来的一大堆代码的集合。全球的编程语言有2500+多种,常见的编程语言:Java、C#、Python、PHP、C…

作文,是由小学生使用 汉语/英语/法语/日语… 写出来一大堆的文字的集合。

本质上学习编程语言就是学习他的语法,根据语法再去编写相应的软件中的功能。

  • Python语言中输出的语法规则

    print("hello world")
    
  • Golang语言中输出的语法规则

    fmt.Pringln("hello world")
    

1.3 编译器/解释器

编译器/解释器,就是一个翻译官,将代码翻译成计算机能够识别的命令。

A使用Python开发了一个软件 1000              B使用Golang开发了一个软件 2000

       Python解释器                        Golang编译器

                    操    作    系    统

               CPU    硬盘    网卡    内存    电源 .....

在这里插入图片描述

为什么有的叫解释器?有的叫编译器?

  • 解释器,实时翻译。拿到1000行代码之后,解释一句交给操作系统一句。
  • 编译器,全文翻译。拿到2000行代码之后会将他编译成一个临时文件(计算机能够识别命令),再把文件交给操作系统去读取。

Python、PHP、JavaScript、Ruby…一般称为解释型语言。

C、C++、Go、Java…一般称为编译型语言。

2.学习编程的本质

学编程本质上就是三件事:

  • 选择一门编程语言,在自己的电脑上安装此编程语言相关的 编译器/解释器。
  • 学习编程语言的语法规则,根据语法规则 + 业务背景 设计并开发你的软件(代码集合)。
  • 使用 编译器/解释器 去运行自己写的代码。

3.Python的介绍

3.1 语言的分类

  • 翻译的维度

    • 解释型语言,Python、Ruby…
    • 编译型语言,C、C++、Golang
  • 高低的维度

    • 低级编程语言,写出来的代码直接可以被计算机识别。

      机器语言,101 001 00001 00010 001000100010001,机器码,交给计算机去执行。
      汇编语言,MOV INC ... ,指令,交给计算机去执行。
      
    • 高级编程语言,写出来的代码无法直接被计算机识别,但可以通过某中方式将其转换为计算机可以识别的语言。

      C、C++、Java、Python、Ruby...,这类编程语言在编写代码时几乎是写英语作文。
      交由相关编译器或解释器翻译成机器码,然后再交给计算机去执行。
      

注意:现在基本上都使用高级编程语言。

3.2 Python

Python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,Guido开始写Python语言的编译器。Python这个名字,来自Guido所挚爱的电视剧Monty Python’s Flying Circus。他希望这个新的叫做Python的语言,能符合他的理想:创造一种C和shell之间,功能全面,易学易用,可拓展的语言。

全球众多编程语言,为何Python可以脱颖而出成为业界炙手可热的编程语言?目前位居TIOBE排行榜第三名并且一直呈上升趋势。

在这里插入图片描述

在这里插入图片描述

Python如此火爆的原因如下:

  • 语法简洁 & 适合小白学习,相比较于其他编程语言Python的学习成本非常低,甚至可以让其他行业的人快速掌握编程技能,通过编程提供工作效率,例如:Excel自动化办公、文件和文件夹的处理等。
  • 类库强大,Python自诞生之初就任其自然生长,经过多年的发展,造就其在很多领域都是积累了很多方便的类库,自然也成为了运维自动化、数据分析、机器学习首选编程语言。
  • 开发效率极高,结合Python语法精炼和类库齐全的特点,所以在使用Python进行开发时可以用更少的代码完成更多的功能,大大提升开发效率。例如:Python10行代码实现的功能,用其他语言可能需要100+行才能完成。

3.3 Python的解释器种类(了解)

想要学一门编程语言:安装Python解释器、学习python语法并编写代码、使用Python解释器去执行编写好的代码。

Python在全球非常的火,很多公司都会想要来层热度。

由于Python太火了,所有就有很多的公司都开发了Python解释器(用来翻译python代码成为计算机能够识别的命令)。

  • CPython【主流】,底层是由C语言开发出来的Python解释器。
  • Jython,是由Java语言开发出来的Python解释器,方便与让Python和Java代码做集成。
  • IronPython,是基于C#语言开发出来的Python解释器,方便与让Python和C#代码做集成。
  • RubyPython,…
  • PyPy,是对CPython的优化,他的执行效率提高了。引入编译器的功能,本质上将Python代码进行编译,再去执行编译后的代码。

注意:常说的Python解释器默认指的就是CPython解释器。

3.4 CPython解释器的版本

CPython的解释器主要有两大版本:

  • 2.x,目前最新的Python2.7.18。(2020后不再维护)

    Being the last of the 2.x series, 2.7 received bugfix support until 2020. Support officially stopped January 1 2020, and 2.7.18 code freeze occurred on January 1 2020, but the final release occurred after that date.
    
  • 3.x,目前最新的3.9.0版本(授课)。

4.环境搭建

  • Python解释器,将程序员编写的python代码翻译成计算机能够识别的指令。
    • 主流CPython
    • 3.9.0版本
  • 学习编程本质上的3件事
    • 安装 CPython 3.9.0版本解释器
    • 学习Python语法并写代码
    • 解释器去运行代码

4.1 安装Python解释器

4.1.1 mac系统
  • 去Python官网下载Python解释器(3.9.0版本)

    https://www.python.org/
    
  • 安装

    默认Python解释器安装目录: /Library/Frameworks/Python.framework/Versions/3.9
    
    有bin目录下有一个 python3.9 文件,他就是Python解释器的启动文件。
    解释器路径:/Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9 
    
  • 写一个简单的Python代码并且让解释器去运行。

    name = input("请输入用户名:")
    print("欢迎使用NB系统:",name)
    

    将文件保存在:文稿/hello.py【/Users/wupeiqi/Documents/hello.py】

    接下来要让解释器去运行代码文件:

    - 打开终端
    - 在终端输入:解释器 代码文件
      /Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9 /Users/wupeiqi/Documents/hello.py
    
  • 【补充】系统环境变量

    - 假设你有30个Python文件要运行
       /Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9 /Users/wupeiqi/Documents/hello1.py
       ...
       /Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9 /Users/wupeiqi/Documents/hello30.py
    
    - Python解释器的路径每次不用再写这么长。
        - 将  /Library/Frameworks/Python.framework/Versions/3.9/bin 添加到系统的环境变量中。
        - 以后再使用Python解释器去运行python代码时,就可以这样:
        	 python3.9 /Users/wupeiqi/Documents/hello1.py
        	 ...
        	 python3.9 /Users/wupeiqi/Documents/hello2.py
    
    - 如何将 /Library/Frameworks/Python.framework/Versions/3.9/bin 添加到系统的环境变量中 ?
    	- 默认你不用添加,默认Python解释器在安装的过程中已经帮你添加了。
    	- 自己手动想添加:
    		 - 打开用户目录的下的  .bash_profile 文件(.zprofile)
    		 - 在文件中写如下内容
    
    # Setting PATH for Python 3.9
    # The original version is saved in .zprofile.pysave
    PATH="/Library/Frameworks/Python.framework/Versions/3.9/bin:${PATH}"
    export PATH
    
4.1.2 windows系统
  • Python官网下载Python解释器

    https://www.python.org/downloads/release/python-390/
    
  • 在自己电脑上进行安装

    python解释器安装目录:C:\Python39
    python解释器的路径:C:\Python39\python.exe
    
  • 编写一个Python代码并交给Python解释器去运行

    name = input("请输入用户名")
    print("欢迎使用NB系统",name)
    

    并将文件保存在:Y:\hello.py

    怎么让解释器去运行写好的代码文件呢?

    - 打开终端
    - 在终端输入:解释器路径 代码路径
    
  • 优化配置(让以后操作Python解释器去运行代码时候更加方便)

    - 写了30个Python代码,想要使用解释器去运行。
        C:\Python39\python.exe Y:\hello1.py
        C:\Python39\python.exe Y:\hello2.py
        ...
        C:\Python39\python.exe Y:\hello10.py
    
    - 然你以后可以方便的去运行代码,不用再写Python解释器所在的路径。   
        只要你将 C:\Python39 路径添加到系统的环境变量中。以后你在终端就可以:
            python.exe Y:\hello1.py
            
    - 如何将 C:\Python39 添加到环境变量呢?【默认在解释器安装的时已自动添加到环境变量了】
    

4.2 安装Pycharm编辑器(mac)

帮助我们快速编写代码,用Pycharm可以大大的提高咱们写代码的效率。 + 用解释器去运行代码。

print("asdfasdf")
  • 下载Pycharm

    https://www.jetbrains.com/pycharm/
    
  • 安装

  • 快速使用,写代码+运行代码

  • 破解Pycharm(专业版)

4.3 安装Pycharm编辑器(win)

  • 下载Pycharm

    https://www.jetbrains.com/pycharm/download/other.html
    
  • 安装

  • 快速使用:编写代码 + 运行代码

  • 破解Pycharm(专业版)

总结

  1. 了解硬件 & 操作系统 & 软件(应用系统)之间的关系。
  2. 了解常见的操作系统都有哪些。
  3. 了解编译器和解释器的区别和作用。
  4. 编程语言进行分类
  5. 了解Python解释器的种类
  6. 了解CPython解释器的版本
  7. 学会如何安装Python解释器。
  8. 了解什么环境变量的作用。
  9. 了解Python和Pycharm的区别。

作业

  1. 简述硬件 & 操作系统 & 软件(应用系统)之间的关系。
  2. 列举常见的操作系统都有哪些。
  3. 简述编译器和解释器的区别和作用。
  4. 编程语言进行分类
  5. Python解释器的种类有哪些?
  6. CPython解释器的版本有哪些?你现在用的是哪个版本?
  7. 系统环境变量的作用是什么?
  8. Python和Pycharm的区别是什么?

作业答案

  1. 谈谈你了解的编码以及为什么会出现乱码的现象?

    编码相当于是一个`密码本`,其中存储着文字和01010的对应关系。
    乱码的出现时因为文件的存储方式和打开方式不一致导致。另外,如何数据丢失也可能会造成乱码。
    假如:
    	武,对应存储的是:100100001000000111。如果文件中的内容丢失只剩下100100001000000,则读取时候就可能出现乱码。
    
  2. Python解释器默认编码是什么?如何修改?

    Python解释器默认编码:utf-8
    在文件的顶部通过设置: # -*- coding:编码 -*- 实现修改。
    
  3. 用print打印出下面内容:

    ⽂能提笔安天下,
    武能上⻢定乾坤.
    ⼼存谋略何⼈胜,
    古今英雄唯是君。
    
    print("⽂能提笔安天下,")
    print("武能上⻢定乾坤.")
    print("⼼存谋略何⼈胜,")
    print("古今英雄唯是君。")
    
    text = """
    ⽂能提笔安天下,
    武能上⻢定乾坤.
    ⼼存谋略何⼈胜,
    古今英雄唯是君。
    """
    print(text)
    
  4. 变量名的命名规范和建议?

    三条规范(必须遵循,否则定义变量会报错)
      - 变量名只能由 字母、数字、下划线 组成。
      - 变量名不能以数字开头。
      - 变量名不能是Python内置关键字
    二条建议(遵循可以显得更加专业,不遵循也可以正常运行不报错)
    	- 下划线命名法,多个单词表示的变量名用下划线连接(均小写)
    	- 见名知意,通过阅读变量名就能知道此变量的含义。
    
  5. 如下那个变量名是正确的?

    name = '武沛齐'
    _ = 'alex'
    _9 = "老男孩"
    9name = "宝浪"   # 错误
    oldboy(edu = 666 # 错误
    
  6. 设定一个理想数字比如:66,让用户输入数字,如果比66大,则显示猜测的结果大了;如果比66小,则显示猜测的结果小了;只有等于66,显示猜测结果正确。

    num = input("请输入数字")
    data = int(num)
    if data > 66:
        print("大了")
    elif data < 66:
        print("小了")
    else:
        print("正确")
    
  7. 提示⽤户输入 “爸爸” ,判断⽤户输入的对不对。如果对, 提示真聪明, 如果不对, 提示你是傻逼么。

    text = input("请输入内容")
    if text == "爸爸":
        print("真聪明")
    else:
        print("你是傻逼么")
    
  8. 写程序,成绩有ABCDE5个等级,与分数的对应关系如下.

    A    90-100
    B    80-89
    C    60-79
    D    40-59
    E    0-39
    

    要求用户输入0-100的数字后,你能正确打印他的对应成绩等级.

    score = input("请输入分数")
    data = int(score)
    
    if data >= 90 and data <= 100:
      print("A")
    elif data >= 80 and data <90:
      print("B")
    elif data >= 60 and data <80:
      print("C")
    elif data >= 40 and data <60:
      print("D")
    elif data >= 0 and data <40:
      print("E")
    else:
      print("输入错误")
    
    score = input("请输入分数")
    data = int(score)
    
    if 90 <= data <= 100:
        print("A")
    elif 80 <= data < 90:
        print("B")
    elif 60 <= data < 80:
        print("C")
    elif 40 <= data < 60:
        print("D")
    elif 0 <= data < 40:
        print("E")
    else:
        print("输入错误")
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/3861.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

快2023了你不会还没学uni-app吧?(uniapp开发快速上手,uniapp项目创建,基础目录介绍)

uniapp新人上手指南前言开发工具快速尝鲜—创建uni-app项目项目基础目录介绍最后前言 uni-app 是一个使用 Vue.js (opens new window)开发所有前端应用的框架&#xff0c;开发者编写一套代码&#xff0c;可发布到14个平台&#xff0c;听起来是不是非常厉害&#xff0c;如果你后…

【论文阅读】Semi-supervised Sequence Learning半监督序列学习

【论文阅读】Semi-supervised Sequence Learning半监督学习 前言 半监督学习(Semi-Supervised Learning&#xff0c;SSL) 是模式识别和机器学习领域研究的重点问题&#xff0c;是监督学习与无监督学习相结合的一种学习方法。半监督学习使用大量的未标记数据&#xff0c;以及同…

别让 Linux 成为拿offer的阻碍

文章目录前言目录结构VI/VIM 编辑器是什么一般模式编辑模式&#xff08;插入模式&#xff09;命令模式模式间转换常用基础命令&#xff08;重要&#xff09;帮助命令man 获得帮助信息help 获得 shell 内置命令的帮助信息type 查看某命令是内置命令还是外部命令常用快捷键文件目…

Java 之 ElasticSearch8.x.x 【一篇文章精通系列】【ES的基本操作,ES安装,ES head + Kibana】

Java 之 ElasticSearch8.x.x 【一篇文章精通系列】【上&#xff1a;ES的基本操作&#xff0c;ES安装&#xff0c;ES head Kibana】一、ElasticSearch的安装1、解压安装ES2、熟悉目录3、启动ES4、安装可视化界面&#xff08;elasticsearch head&#xff09;5、了解ELK6、安装Ki…

【路径插值与抽稀篇】(3)路径插值与抽稀篇

系列文章目录 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、路径曲线插值、拟合和逼近的区别1、拟合2、插值3、逼近二、路径点线性插值方法&#xff08;1&#xff09;纯跟踪&#xff…

EDA程序设计--计时器设计

实训题目&#xff1a;计时器的设计 1 系统设计 1.1设计要求 1.1.1 设计任务 设计并制作一台计时器。 1.1.2 性能指标要求 ① 用EDA实训仪的I/O设备和PLD芯片实现计时器的设计。 ② 计时器能够显示时、分和秒。 ③ 用EDA实训仪上的8只八段数码管显示时、分和秒&#xff08;如00…

mysql 常用查询优化策略详解

前言 在程序上线运行一段时间后&#xff0c;一旦数据量上去了&#xff0c;或多或少会感觉到系统出现延迟、卡顿等现象&#xff0c;出现这种问题&#xff0c;就需要程序员或架构师进行系统调优工作了&#xff0c;其中&#xff0c;大量的实践经验表明&#xff0c;调优的手段尽管…

Linux学习——目录操作和库使用

目录 一、打开目录 二、读取目录 三、关闭目录 四、修改文件权限 五、获取文件属性 六、库的概念&#xff1a; 1、静态库 缺点&#xff1a; 优点&#xff1a; 创建静态库步骤&#xff1a; 链接静态库&#xff1a; 2、动态库 动态库的生成步骤&#xff1a; 练习题&a…

论文阅读之Enhancing Transformer with Sememe Knowledge(2020)

文章目录论文阅读Transformmer-SETransformer-SP实验结果总结参考论文阅读 文章建议结合两种简单的方法将义原知识整合&#xff1a; 1&#xff09;基于语言学假设&#xff0c;我们将聚合义原嵌入添加到每个词嵌入中以增强其语义表示&#xff1b; 2&#xff09;我们使用义原预测…

OpenCV实战项目 -- 口罩识别

每次我忘记戴口罩去食堂吃饭的时候&#xff0c;门口都会有志愿者学生提醒你&#xff1a;“你好&#xff0c;麻烦戴下口罩。” 进门后里面那块大屏幕还会发出声音&#xff1a;“请佩戴口罩”。 上次博客仿照宿舍楼下那块大屏幕写了个人脸考勤&#xff0c;所以这次我打算弄一个口…

std::logic_error 错误的解决

今天测试一个程序&#xff0c;突然出现一个 std::logic_error 错误&#xff0c;详细如下&#xff1a; 这个应该是 std::string 相关的一个错误&#xff0c;具体的错误信息还得用 GDB 跟踪一下了。 看第 8 栈帧已经是系统库里的东西了&#xff0c;第 9 帧是我本地的代码&#x…

【C进阶】之定义结构体及使用typedf

1 结构体中包含函数指针类型成员 声明的格式&#xff1a; struct 结构体名 { 返回类型 (*函数指针名)(形参列表); }; 定义结构体类型的变量并对结构体中的函数指针成员进行初始化 struct 结构体名 结构体变量名; 结构体变量名.函数指针名 函数名; // 函数指针指向的函数具有相…

目标检测(7)—— YOLO系列V3

一、YOLOV3 多scale 三种scale&#xff1a; 为了检测到不同大小的物体&#xff0c;设计了3个scale。 特征融合不好。 感受野大的特征图预测大的&#xff0c;中的预测中的&#xff0c;小的预测小的。各自预测各自的&#xff0c;不用做特征融合。 三个候选框&#xff1a; 每个特…

「C++小游戏教程」基本技巧(2)——系统 DOS 命令

0. 引言 「C小游戏教程」基本技巧(1)——随机化 在 (1) 中&#xff0c;我在使用 random_shuffle() 时加了一个 system("pause");。其中 system() 是系统发出 DOS 命令的函数&#xff0c;原型为 int system(char *command);。我们今天就来谈谈这个函数的主要功能用途…

Redis持久化

目录 一、Redis高可用 1.持久化 2.主从复制 3.哨兵 4.Cluster集群 二、Redis持久化 三、RDB持久化 1.概念 2.触发条件 &#xff08;1&#xff09;手动触发 &#xff08;2&#xff09;自动触发 3.执行流程 4.启动时自动加载 四、AOF持久化 1.概念 2.开启AOF持久…

微信公众号获取openid流程

说明 微信公众号获取openid&#xff0c;在官方文档中称为网页授权&#xff0c;授权有两种scope&#xff0c;snsapi_base和snsapi_userinfo&#xff0c;snsapi_base是静默授权&#xff0c;不需要用户同意&#xff0c;以下要说的就是静默授权。 关于网页授权的两种 scope 的区别…

[CISCN2019 华北赛区 Day1 Web2]ikun

要买lv6 然后下一页下一页的找&#xff0c;也找不到 来个脚本爆破一下 #coding&#xff1a;utf-8 import requests import time for i in range(1,200):print(i)url http://17dfa3f4-2826-4b97-9d61-a920b6c8976f.node4.buuoj.cn:81/shop?page{}.format(i)r requests.get…

目标检测(6)—— YOLO系列V2

一、YOLOV2改进的概述 做的改进如下图&#xff1a; Batch Normalization 批量归一化层 不加BN层&#xff0c;网络可能学偏&#xff0c;加上归一化进行限制。 从今天来看&#xff0c;conv后加BN是标配。 更大的分辨率 V1训练的时候使用224224&#xff0c;测试用448448。 V2训…

胡扯推荐算法(协同)及其dome实现

文章目录前言推荐系统定义基本分类相似度计算欧式距离皮尔逊系数余弦相似度协同过滤案例数据定义相似度计算推荐svd奇异值分解优化完整代码总结前言 打瞌睡遇到送枕头的感觉真爽嘿嘿 BoyC啊 废话不多说&#xff0c;开始吧。 推荐系统定义 推荐系统(Recommendation System,…

张益唐与黎曼猜想

一个人活在世界上&#xff0c;可以有不同层次的贡献&#xff0c;有正的有负的。唐山烧烤店打人的那种人&#xff0c;就是典型的负的贡献。正的贡献有大有小&#xff0c;像我这样开发一个小软件&#xff0c;写一段小博文&#xff0c;这是小的贡献&#xff1b;像张益唐这样&#…