Python的语法笔记

Python的基本语法

1.计算机相关的名词知识

1.1计算机的组成

计算之父 冯.诺依曼,根据冯.诺依曼结构体系,计算机是分为5部分的

1.输入设备

​ 把信息传递到计算机中,比如键盘,鼠标

2.输出设备

​ 信息从计算机中传递出来,比如音响,显示器,打印机等等

3.存储器

​ 计算机被发明出来就是用于数据的存储与计算的

​ 计算机上有两个存储数据的设备:内存 、硬盘

​ 硬盘:电脑上的磁盘分区,存储在硬盘中的数据都是持久化存储【只要不删除就一直存在】

​ 内存:内存是用来存储计算机上应用app运行产生的数据,当程序退出的时候,该程序存储于内存中的数据就会被释放

​ 内存在之后的知识中会有提及【编写的Python程序产生的数据是存储与内存中】

4.运算器

​ 调度存储器中的数据参与相应的运算【基本运算有加减乘除等等】

5.控制器

​ 控制器和运算器结合在一起称为中央控制器[CPU],相当于人的大脑,调度计算机各部分的运转

1.2命令行交互的指令

讲解的是人与应用程序交换的模式,这个模式常见的是有两种

1.图形化界面

​ 接触起来是比较简单的,按照的操作描述很快上手进行操作

2.命令行指令

​ 之后可能会接触一些文件操作相关的指令,来介绍一些常用的指令,这个指令在windows系统中成为DOS命令,在Mac或者Linux系统中称为Shell命令

​ 这个指令时需要在终端上运行,这个工具在Mac上称为终端,在Windows称为命令提示符工具

启动工具的方式:

​ 1.windows下可以使用 快捷方式 win键+r调出搜索器,输入cmd回车进行启动

​ 2.mac在启动台上找到其他 – 终端

​ 工具启动完成,默认打开的是当前用户的路径

​ Mac和windows的目录结构不一样

​ windows是分磁盘的,分为C盘、D盘、但是Mac下没有分盘,所有的路径延伸都是从根目录/来的,Mac的同学 可以在终端上书写指令open / 打开根目录

常用的一些指令:

主要是来接触目录的跳转的

1.显示当前目录下的子文件
	Windows:dir
	mac:ls
	
	显示隐藏的文件的话
	windows: dir /a
	mac: ls -la
2.路径的切换
	使用的指令是cd 文件的路径
	文件路径分为两种,分别是相对路径和绝对路径
		绝对路径:Windows的话 从盘符开始到指定文件夹路径
			比如C:\woekContent\各班代课\JYPython2304\day02_
计算机基础与python相关软件安装配置
			mac就是从/开始的,不知道路径是什么 找到文件夹  右键显示简介 -- 位置
		相对路径:参照物的,参照物就是当前的文件夹
			有两个符号需要大家记住,分别是 .和..
				. 当前文件夹
				.. 上一级文件夹
		相对路径需要根据需求  从当前文件夹使用.或者..定位相应位置再去定位想要的路径
			定位到公用用户
				绝对路径: cd C:/Users/Public
				相对路径: cd ../Public
	
	windows下面可能涉及到盘符到切换,路径盘符与当前位置不一样吗,需要先切换盘符,格式就是  盘符: 回车即可

1.3计算机中数据储存

生活中的计算数据的时候是按照十进制规则来进行计算的

十进制的规则是逢十进一,十进制的数字符号是由0/1/2/3/4/5/6/7/8/9组合成的

计算机中数据存储运算的时候,不是采用的十进制,而是二进制,这个二进制就是逢二进一,二进制的数字符只有0和1

常见的进制形式:二进制/八进制/十进制/十六进制

二进制(0b --binary):符号集只有0和1,0b10代表的是数字2

八进制(0o —octal) 符号集是有0/1/2/3/4/5/6/7,0o10代表的是数字8

十进制:符号集是0-9,10代表就是数字10

十六进制(0x --hexadecimal):逢十六进一,就意味着没有遇到16不会出现两位数,0x10代表的是数字16,符号集是0/1/2/3/4/5/6/7/8/9/a/b/c/d/e/f在十六进制中使用字母a-f表达10-15的数字【字母大小写都可以】

八进制和十六进制出现的原因是因为二进制表达数据可读性差,组合会过于长,因此就出现了八进制和十六进制,简化二进制的表达格式

进制转换

1.十进制转化为二进制的规则

整数部分的规则:
	将数据除以2取余数,重复这个操作,直到商为0,将所有余数逆向拼接,接股票就是二进制数据
	比如:24
	24/2=12 ---0
	12/2=6 ----0
	6/2 =3 ----0
	3/2=1 -----1
	1/2=0 -----1
小数部分的规则:
	将数据乘以2取整数部分,再将积的小数部分乘以2取整数部分 重复此操作,直到小数部分为0,将整数部分正序拼接在一起
	比如:0.125 = 0b.001
	0.125 * 2 = 0.25 ---> 0
	0.25 * 2 = 0.5 -----> 0
	0.5 * 2 = 1.0 ------> 1
	
	如果数据是24.125 ====》 0b11000.001

练习:

29
29/2=14 ---1
14/2=7----0
7/2=3----1
3/2=1----1
1/2=0-----1

58
58/2 = 29----0
29/2 = 14-----1
14/2 = 7----0
7/2=3----1
3/2=1----1
1/2=0-----1

75.25
75/2=37----1
37/2=18----1
18/2=9----0
9/2=4----1
4/2=2----0
2/2=1----0
1/2=0----1

54.75
54 = 32 + 16 + 4 + 2 = 0b110110

64  32  16  8  4  2  1  0.5   0.25   0.125  ....
                 2^1 2^0  2^-1  2^-2
    0.75 = 0.5 + 0.25  = 0b.11
      
    0.75 * 2 = 1.5  ===> 1
    0.5 *2 =1.0 =======> 1
                 
	小数十进制转二进制

	0.2 ===> 二进制
		0.2 * 2 = 0.4 === 0
		0.4 * 2 = 0.8 === 0
		0.8 * 2 = 1.6 === 1
		0.6 * 2 = 1.2 === 1
		无限循环
	小数存储的时候会有精度损失的问题

	尽量避免小数进行比较
	0.1  +  0.2  =  0.3

2.二进制转十进制

规则:按全展开求和
	以十进制为例,讲解这个按权展开
	比如5436 = 5 * 1000 + 4 * 100 + 3 * 10 + 6 * 1
		1000/100/10/1都是基于本进制对应位置上的权值
			= 5 * 10^3 + 4 * 10^2 + 3 * 10^1 + 6 * 10^0
		每位上的权值 = 进制^(位数-1)
	按照上面的规则,二进制上每位的权值 = 2^(位数-1)
	
	比如0b1101 = 
			1*2^ + 0*2^1 + 1*2^2 + 1*2^3
			=1 +0 + 4 + 8
			= 13
	二进制比较特殊,特殊的就是符号集只有0和1,0乘以任何数为0  1乘以任何数位数据本身,可以假设所有位置上都是1,二进制数据每位的权值从右到左的结果为1 2 4 8 16 32 64 128 256 512 10245 ....
	讲解另外一个规则:
		将数据减去离其最近且小于它的2幂数,将差值继续该操作  直到差值为0,统计2的幂数有哪些,然后按照从右到左的位置  有该幂数的则该位置为1,否则对应位置为0
		比如:79 = 0b1001111
		79 - 64 = 15
		15 - 8 = 7
        7 - 4 = 3
        3 - 2 = 1
        1 - 1 = 0

练习

0b10111
1*2^0 + 1*2^1 + 1*2^2 + 0*2^3 + 1*2^4
=1 + 2 + 4 + 0 +16
=23

0b10010
0*2^0 + 1*2^1 + 0*2^2 + 0*2^3 + 1*2^4
=0 + 2 + 0 + 0 +16
=18

0b11100
0*2^0 + 0*2^1 + 1*2^2 + 1*2^3 + 1*2^4
=0+ 0 + 4 + 8 + 16
=28

0b10110
0*2^0 + 1*2^1 + 1*2^2 + 0*2^3 + 1*2^4
=0 + 2 + 4 + 0 + 16
=22

3.八进制和二进制之间的转换

二进制转八进制规则:
	八进制的最大数字是7,7转化为二进制需要3位,为0b111,最大的数字需要三位,其他的数字三位足以满足要求
	规则:将二进制数据从右向左3位3位一分,左边不足3位前面补0,将分出的每一份按权展开求和,将和从左向右拼接在一起就是八进制
	比如 0b1100111011
	0b001    100   111  001
	  1       4     7    3   ====> 0o1473
八进制转二进制规则:三位的幂值是421
	将每位数转换为三位二进制数,将结果拼接在一起即可
	比如0o2574
	2 -- 0b010
	5 -- 0b101
	7 -- 0b111
	4 -- 0b100
	===> 0b101101111100

4.十六进制和二进制之间的转换

二进制转十六进制规则:
	十六进制的最大数字是f(15),15转化为二进制需要4位,为0b1111,最大的数字需要四位,其他的数字四位足以满足要求
	规则:将二进制数据从右向左4位4位一分,左边不足4位前面补0,将分出的每一份按权展开求和,将和从左向右拼接在一起就是十六进制
	比如 0b1100111011
	0b0011    0011  1011
	  3         3     b ====> 0x33b
十六进制转二进制规则:四位二进制数 8 4 2 1
	将每位数转换为三位二进制数,将结果拼接在一起即可
	比如0x9ae3
	9 -- 0b1001
	a -- 0b1010
	e -- 0b1110
	3 -- 0b0011
	===> 0b1001101011100011

练习

八进制转二进制
	0o756
	111101110
	0o354
	11101100
十六进制转二进制
	0xaf39
	a -- 1010
	f -- 1111
	3 -- 0011
	9 -- 1001
	1010111100111001
	
	0xbcd7
	b -- 1011
	c -- 1100
	d -- 1101
	7 -- 0111
	1011110011010111

备注:八进制或者十六进制转化成十进制,规则也是按权展开求和;八进制和十六进制之间的转换需要以二进制为桥梁进行操作【先转二进制,再做转换】

八进制转十进制
	0o12 = 2*8^0 + 1*8^1 +1*8^2
		 = 2 + 8 + 64
		 = 74
十进制转八进制
	数据除以8取玉树,再用商除以8余数直到商为0 将余数逆向拼接
	78 = 0o116
	78/8 = 9----6
	9/8 = 1-----1
	1/8 = 0-----1
十六进制转十进制
	0xff = 15*16^0 + 15*16^1
		 = 15 +240
		 = 255
十进制转十六进制
	数据除以16取余数,再用商除以16取余数直到商为0  将余数逆向拼接
	255 = 0xff
	255/16 = 15------15
	15/16 = 0--------15
八进制和十六进制之间的转换
	0xff === 0o377
		0xff = 0b011  111 111
			 =0o377

1.4 编码和解码

计算机中数据的存储格式是二进制格式的,计算机被研发出来的左右就是来存储和计算的。

常见的一些数据存储与计算机中是如何存储的,这个规则称之为编码

常见的一些数据格式【数字、文字、图片、音视频等等】如何存储于计算机中的???

进制转换中数字可以通过规则转换成二进制进行存储,比如10可以转换成0b1010,但是文字[汉字、英文字母或i这各国语言]这些如何进行存储???

因为数字可以直接存储,指定存储规则的逻辑将每个文字都映射一个数字,将数字转换为二进制数据进行存储,这种规则称为编码

常见的编码方式有

1.ASCII码【美国信息交换标准代码】只有128个文字符号

​ 需要记住的就是 字符0-9 小写英文字母a-z 大写英文字母A-Z

​ 字符0对应的十进制数据是48

​ 字符a对应的十进制数据是97

​ 字符A对应的十进制数据是65

2.GB2312 /GBK

​ 国家编码标准,简称国标,兼容ASCII

3.Unicode

​ 国际编码标准,收录的世界语言在内,兼容ASCII码

​ Unicode下又分为很多种,常见的是其中的UTF-8

​ Python采用的数据编码方式就是UTF-8

不同编码的存储区别:

1.ASCII属于单字节编码方式,里面规定的字符,在内存存储的时候开辟的是一个字节进行存储的

2.GBK/GB2312存储汉字的时候规定汉字字符在内存占2个字节

3.UTF-8存储汉字的时候 规定汉字字符在内存中占3个字节

计算机中数据的存储格式是二进制,数据在存储的时候单位有哪些?

1.位(bit)二进制数据中一个0或者一个1称为1位,0b10 这是2位

2.字节(Byte)1个字节等于8位 1B = 8b

3.千字节(KB)1KB = 1024B

4.兆字节(MB)1MB = 1024KB

5.吉字节(GB)1GB = 1024MB

6.太字节(TB)1TB = 1024GB

存储的时候开辟的最小的单位就是字节

编码:把文字数据编译成计算机中存储的二进制数据的过程称为编码

解码:把计算中存储的二进制数据解析成文字数据的过程称为解码

1.5 编程语言

语言:沟通交流传递信息的方式,有效信息的传递包含三部分:传递者/接收者/共识信息[两方都能听懂表达的含义]

编程语言:人们想要和计算机打交道,并且让计算机帮我们做一些事情,主动传递者需要向计算机传递一些计算机能听懂的语言,这个语言就叫做编程语言

编程语言分为低级编程语言和高级编程语言

1.低级语言包含机器语言、汇编语言

​ 机器语言直接通过0和1指令与计算机进行交互

​ 汇编语言使用一些容易理解的单词来代替指令与计算机进行交互

2.高级编程语言

​ 编译型编程语言:写的代码计算机没有办法直接识别的,需要将程序文件编译成计算机能识别的文件,在对文件中的内容逐行解释给计算机,让计算机完成相应的操作,比如Java

​ 解释型编程语言:直接对程序文件逐行向计算机进行解释,完成指令操作,比如Python

1.6Python解释器程序的安装

Python官网www.python.org推出自己的解释器软件,这个工具安装完成之后包含着解释器以及Python程序编写相应的一些工具库文件

Anaconda集成环境工具,除了有Python解释器机器自带的一些Python程序编写相应的一些工具库文件之外,额外安装好了180多个数据科学计算包【这个工具包对于官方提供的属于第三方,要使用的时候是需要自己来进行安装的】

版本号的解读:python 3.11.5

一般格式为A.B.C

C — 程序中出现小问题,修复之后发行的版本

B — 程序中增加了新的功能 发行的版本

A — 程序重构 重新发行一版新的

注意:编程语言环境一般不建议使用最新的,避免有些工具库没有适配到新环境,这个工具库就不能使用了,建议使用稳定的环境

Python 3.8 / 3.9 / 3.10

安装成功之后,软件解读

1.D:\Software\anaconda1\python.exe解释器,由他向计算机解释写的每行Python代码的含义

2.D:\Software\anaconda1\LibPython环境下工具库的目录【这些工具库都是原生的,可以直接使用的】

3.D:\Software\anaconda1\Lib\site-packages三方工具库的目录【这些工具是需要额外安装的】

4.D:\Software\anaconda1\Scripts\pip.exe管理工具库的软件【负责下载、安装、卸载等等工具库的软件】

全局变量Path的解读

问题:为什么安装anaconda的时候要把Python解释器路径放在全局变量PATH下???【方便在任意位置获取解释器解释Python程序】

写代码的时候代码文件可以在任意的目录下,但是python.exe这个解释器文件想要发挥作用只能在安装路径下能找到

在终端上书写python的时候 没有限制路径,查找顺序是

1.在全局路径path下进行查找有没有文件夹中包含这个执行文件的,有的话直接调度运行,如果没有就进行第2步

2.查看cmd当前路径下有没有该执行文件,有的话直接调度执行,如果没有提示既不是内部命令 也不是外部命令

全局路径设置的流程:

​ windows的设置流程:

​ 此电脑- 右键 - 属性 - 高级系统设置 - 环境变量 - 用户变量[仅针对于当前用户]/系统变量[针对于所有用户] - PATH

检查有没有配置好这个全局路径,启动终端,书写python回车检查是否能够进入到Python环境下,退出环境就是exit()

C:\Users\20100>python
Python 3.8.8 (default, Apr 13 2021, 15:08:03) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32

Warning:
This Python interpreter is in a conda environment, but the environment has
not been activated.  Libraries may fail to load.  To activate this environment
please see https://conda.io/activation

Type "help", "copyright", "credits" or "license" for more information.
>>> exit() 

1.7开发工具的安装

利用可视化工具编写代码,软件使用的是pycharm[集成开发工具]

集成开发工具就是集编写代码、运行代码、调试代码于与一身的开发工具

关于pycharm的设置

  1. 设置主题 File | Settings | Appearance & Behavior | Appearance - Theme

  2. 设置编辑区的背景图 File | Settings | Appearance & Behavior | Appearance|background image

  3. 设置字号字体 File | Settings | Editor | Font

  4. 设置解释器 File | Settings | Project | Python Interpreter

  5. 设置文件表头 File | Settings | Editor | File and Code Templates | Python Script

     可用的预定义文件模板变量为:
      ${PROJECT_NAME} - 当前项目的名称。
      ${NAME} - 在文件创建过程中在“新建文件”对话框中指定的新文件的名称。
      ${USER} - 当前用户的登录名。
      ${DATE} - 当前的系统日期。
      ${TIME} - 当前系统时间。
      ${YEAR} - 今年。
      ${MONTH} - 当月。
      ${DAY} - 当月的当天。
      ${HOUR} - 目前的小时。
      ${MINUTE} - 当前分钟。
      ${PRODUCT_NAME} - 将在其中创建文件的IDE的名称。
      ${MONTH_NAME_SHORT} - 月份名称的前3个字母。 示例:1月,2月等
      ${MONTH_NAME_FULL} - 一个月的全名。 示例:1月,2月等
    
    """
    项目名称: ${PROJECT_NAME}
    用户名: ${USER}
    创建日期: ${DATE}
    flag标语:键盘敲烂 月薪过万!!!!
    """
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值