养成番:0基础入门学习Python---Day01(Python概述、计算机基础、进制、注释、输入和输出、位运算)

Day01

Python概述&第一个Python程序

一、Python的概述

1.Python语言

解释型: Python, JavaScript, PHP, JSP, ASP

编译型: C, C++, C#, Java, …

Python是一种脚本语言, 解释型, 面向对象(类), 动态数据类型的高级程序设计语言.

Python由Guido van Rossum(荷兰) 于1989年底发明,第一个公开发行版发行于1991年

Python2.X 和 Python3.X 不兼容, 建议使用3.7或3.8

2.Python的简介

Python是一种解释性语言: 开发过程中没有编译这个环节, 类似于PHP和JS语言, 是脚本语言.

Python是初学者的语言: Python对初级程序员而言, 是一种伟大的语言.

3.为什么学习Python

Python语言排行榜, Python的薪资, Python的就业岗位数量, Python发展前景

Python 应用广泛

Python 是最接近AI(人工智能)的语言, C++, R

Python 是跨平台的【Python程序可以运行在windows、linux,Macos上,例如:在windows上书写的Python程序,可以在linux或者macos上运行】

4.Python发展史

Python的作者,Guido von Rossum,是荷兰人。1982年,Guido从阿姆斯特丹大学(University of Amsterdam)获得了数学和计算机硕士学位

1989年,为了打发圣诞节假期,Guido开始写Python语言的编译/解释器, Python来自Guido所挚爱的电视剧Monty Python’s Flying Circus (BBC1960-1970年代播放的室内情景幽默剧,以当时的英国生活为素材)。他希望这个新的语言叫做Python的语言 (Python翻译:蟒蛇)

1991年,第一个Python编译器(同时也是解释器)诞生。它是用C语言实现的cpython。从一出生,Python已经具有了:类(class),函数(function),异常处理(exception),包括列表(list)和词典(dictionary)在内的核心数据类型,以及模块(module)为基础的拓展系统。

5.Python的优缺点
5.1优点

简单:Python是一种代表简单主义思想的语言

易学:就如同你即将看到的一样,Python极其容易上手。前面已经提到了,Python有极其简单的语法

高层语言:当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节

面向对象:Python既支持面向过程的编程也支持面向对象的编程

可嵌入性:你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能

丰富的库:Python标准库确实很庞大, 第三方库也非常非常多。

GUI图形界面

5.2缺点

强制缩进

运行速度相对较慢, 因为是高层语言, 打个比方:C语言1s, Java10s, Python100s, 但是运行时间都会非常快, 比如c语言0.01ms, Python1ms, 网络消耗1s, 那么c语言1.00001秒, Python1.001秒, 所以真正运行程序时相差不大

代码不能进行加密【源代码】

6.Python的应用

Python擅长的领域:

​ web开发: Python后端开发Django,Flask,Tornado

​ 爬虫开发: Python

​ 数据分析: Python:Numpy, Pandas,

​ 机器学习: sklearn

​ 人工智能: 深度学习,机器学习

​ 自动化测试:Python

​ 云计算/运维: Python

​ 少儿编程: Python

二、数据的存储

1.思考问题

1.为什么使用计算机

​ 为了存储数据,快速处理数据

2.数据存储在计算机的什么位置

​ 数据存储在内存(缓存/临时存储)中, 存在硬盘(持久化/永久存储)

3.计算机如何存储数据的

​ 计算机存储数据【数据包括数字,英文,中文,文件等】, 最终是以二进制存储在硬盘或内存中

2.内存
2.1概述

内存是计算机的组成部分,作用是与cpu沟通的桥梁,计算机中所有的程序都是在内存中运行

内存【Memory】,内存储器,作用暂时存放cpu中的运算数据

2.2抽象理解

十进制: 0,1,2,3,4,5,6,7,8,9

二进制: 0,1

八进制: 0,1,2,3,4,5,6,7

十六进制: 0,1,2,3,4,5,6,7,8,9, A,B,C,D,E,F

一个开关,有两种状态,打开或者关闭,在计算机中使用0和1表示

10 => 1010(二进制) => 00000000 00000000 00000000 00001010

a => 97(十进制) => 1100001 (二进制) => 00000000 00000000 00000000 01100001

2.3单位

硬盘:1T, 2T

计算机中表示数据的最小单位:比特 【bit ----b】,又被称为位, 0/1

计算机中处理数据的最小单位:字节【Byte ----B】

单位换算:1B = 8b【掌握】

KB MB GB TB PB EB…DB

存储单位 :

​ 1byte = 8bit

​ 1KB = 1024 byte

​ 1MB = 1024KB

​ 1GB = 1024MB

计算机在内存中以二进制的形式存储数据【主要使用0和1进行表示】

3.进制
3.1 什么是进制

a.进制就是进位的制度,一种进位的方式

​ 例如:十进制:逢十进一

​ 二进制:逢二进一

​ 八进制,

​ 十六进制【是由二进制演变来的】

b. 常见的进制:

​ 二进制(0和1): 0, 1

​ 十进制(0~9的整数): 0,1,2,3,4,5,6,7,8,9

​ 八进制(0~7的整数,用数字0开头), 0,1,2,3,4,5,6,7

​ 十六进制(09和af【不区分大小写】,用0x或者0X开头)

​ 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f

3.2 进制的特点

a.每种进制都有确定的符号集

b.每种进制采用的是位置表示法,位置不同,表示的意义不同,值的不同取决于它所在位的权值有关

​ 举例:

​ 注意:下面的^表示的是次方

​ 145:100 = 10²

​ 761:1 = 10^0

​ 817:10 = 10^1

​ 145 = 1x10^2 + 4x10^1 + 5x10^0

c.二进制的计算

​ 0+0=0

​ 1+0=1

​ 0+1=1

​ 1+1= 10 【逢二进一】 = 1*2^1

3.3 进制之间的转换 【难点】

a.二进制 -> 十进制

​ 转换原理:将二进制按照权展开,相加即可得到十进制

2的次方:
2的0次方 = 1
2的1次方 = 2
2的2次方 = 4
2的3次方 = 8
2的4次方 = 16
2的5次方 = 32
2的6次方 = 64
2的7次方 = 128
2的8次方 = 256
2的9次方 = 512
2的10次方 = 1024

二进制 => 十进制
001  => 1
010  => 2 (1*2¹)
100  => 4 (1*2²)
1000  => 8 (1*2³)
10000  => 16 (1*2^4)
...

000 => 0
001 => 1
010 => 2
011 => 3
100 => 4
101 => 5
110 => 6
111 => 7
...

二进制 => 十进制
101001 => 2^5 + 2^3 + 1 = 32 + 8 + 1 = 41
10111 => 2^4 + 2^2 + 2 + 1 = 16 + 4 + 2 +1 = 23
101 => 5
110 => 6
1000 => 8
010 => 2
111 => 7

100111 = 2^5 + 2^2 + 2 + 1 = 32+4+3 = 39
11001 = 2^4 + 2^3 + 1 = 16 + 8 + 1 = 25

b.十进制 -> 二进制

​ 转换原理:对十进制进行除2的运算,直到商为0为止,然后将各个步骤中得到的余数倒着写出来.

方式一: 针对比较小的数
十进制 => 二进制
41 => 32 + 8 + 1 = 101001
520 => 512 + 8 = 1000001000
1314 => 1024 + 256 + 32 + 2 = 10100100010
3333 => 2048 + 1024 + 256 + 4 + 1 = 110100000101
66 => 64 + 2 = 1000010

方式二: 倒除法
41 => 101001

c.二进制 -> 八进制

​ 转换原理: 每三位二进制按权展开,相加得到1位八进制,实现思路:从右向左进行分组,每3位为一组,不足是补0,将每一组进行二进制转换八进制的操作,最后将每一组得到的结果连起来

000 => 0
001 => 1
010 => 2
011 => 3
100 => 4
101 => 5
110 => 6
111 => 7

二进制     =>  八进制
10100101  => 010 100 101 => 245(八进制)
10100100010  => 10 100 100 010 => 2442(八进制)

八进制  => 二进制
245 => 010 100 101 (二进制)
2442 => 010 100 100 010 (二进制)
5674 => 101 110 111 100 (二进制)

d.二进制 -> 十六进制

​ 转换原理: 每四位二进制按权展开,相加得到1位十六进制,实现思路:从右向左进行分组,每4位为一组,不足是补0,将每一组进行二进制转换十六进制的操作,最后将每一组得到的结果连起来

0000 => 0
0001 => 1
0010 => 2
0011 => 3
0100 => 4
0101 => 5
0110 => 6
0111 => 7
1000 => 8
1001 => 9
1010 => 10 (A)
1011 => 11 (B)
1100 => 12 (C)
1101 => 13 (D)
1110 => 14 (E)
1111 => 15 (F)

# 0 1 2 3 4 5 6 7 8 9 A B C D E F
二进制  => 十六进制
10100101 => 1010 0101 => A5(十六进制)
10100100010 => 0101 0010 0010 => 522(十六进制)
101010111110 => 1010 1011 1110 => ABE(十六进制)

# 十六进制 => 二进制
A5 => 1010 0101 (二进制)
522 => 0101 0010 0010 (二进制)
AE86 => 1010 1110 1000 0110 (二进制)

e.十进制 -> 八进制或者十六进制

​ 转换原理: 先将十进制转换为二进制,然后再将二进制转换为八进制或者十六进制

十进制 => 二进制 => 十六进制
520   => 1000001000 (512+8)  => 10 0000 1000 => 208(十六进制)
1314 => 10100100010(二进制) => 2442(八进制) => 522(十六进制)

f.八进制或者十六进制 -> 十进制

​ 转换原理: 将八进制或者十六进制按照权展开,相加,类似于二进制转换为十进制

十六进制 => 二进制 => 十进制
522 => 0101 0010 0010  => 1024 + 256 + 32 + 2 = 1280+34 = 1314(十进制)
5.存储数据

计算机存储数据的过程:

​ 需要先在内存中开辟空间,然后将数据转化成二进制存入内存. 计算机开辟内存空间的最小单位为字节

比如存储数字1, 一般会在内存中占4个字节: 00000000 0000000 00000000 00000001

三、第一个Python程序

1, 打开Pycharm, 新建项目

2, 创建名为hello.py文件 (Python文件以.py后缀结尾)

b, 在hello.py中输入以下内容

print("hello world")

c, 在代码区域右键, 选择’运行’文件

四、Python的编码规范

a.在每个语句的后面不用添加分号,每行最好只书写一条语句

b.Python中是通过缩进【4个空格】来区分代码块的

c.尽量避免在文件名中出现中文和空格

五、注释

注释在编写程序的时候,给代码添加的一些解释性的文字

作用:可以提高代码的可读性,以便于以后的参考或者修改

注释是解释性文本,在运行程序的时候,会被自动的跳过,不做处理

分类
​ 单行注释:只能注释掉单行的文字 # xxxxxxx

​ 多行注释【块注释】:三个单引号或者三个双引号

注意:对于多行注释,选用单引号或者双引号都可以

​ 如果单纯使用双引号,双引号的注释不能嵌套

六、输入输出【重点】

1.print输出

作用:将一些特定的数据输出到屏幕上【调试工具】

代码演示:

#简单用法:每次只输出一个数据,任何类型都可以
print(10)
print("hello")

#可以通过一条print输出多个数据,使用逗号隔开,最终得到的结果将逗号识别成了空格
print(10,"hello")

x = 3
y = 4
print("x + y = ",x + y)
2.input输入

作用:可以将外部的值作为程序中变量的值使用【从控制台获取值】

代码演示:

#注意:当程序执行到input的时候,程序会停止在这个地方,等待用户的输入,
# 当内容输入结束之后,按下enter,此时输入结束
#用户输入的值可以通过变量的形式保存起来
s = input("请输入内容:")
print(s)

name = input("请输入姓名:")
age  = input("请输入年龄:")
print(name,age)


#需求:根据控制台输入的年龄计算还能活多少年, 假设可以活到100岁
death_age = 100

#注意:通过input获取的数据全部都是字符串
age1 = input("请输入现在的年龄:")
print(death_age - age1)


#字符串和整型之间的转换
"""
转换
int()  将字符串转换为整型

int:integer,整型,
str:string,字符串
"""

#修改上面的获取结果的语句
print("还可以活",death_age - int(age1),"年")


#练习:从控制台输入两个数,计算两个数的和,并将结果输出
num1 = int(input("请输入第一个数:"))
num2 = int(input("请输入第二个数:"))
print(num1 + num2)
result = num1 + num2
print(result)

七、位运算[扩展]

下表中变量 a 为 60,b 为 13二进制格式如下:

a = 0011 1100

b = 0000 1101

-----------------

a&b = 0000 1100

a|b = 0011 1101

a^b = 0011 0001

~a  = 1100 0011
运算符描述实例
&按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0(a & b) 输出结果 12 ,二进制解释: 0000 1100
|按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。(a | b) 输出结果 61 ,二进制解释: 0011 1101
^按位异或运算符:当两对应的二进位相异时,结果为1(a ^ b) 输出结果 49 ,二进制解释: 0011 0001
~按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1(~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。
<<左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。a << 2 输出结果 240 ,二进制解释: 1111 0000
>>右移动运算符:把">>“左边的运算数的各二进位全部右移若干位,”>>"右边的数指定移动的位数a >> 2 输出结果 15 ,二进制解释: 0000 1111

下列代码展示了python所有位运算符的操作:

a = 60            # 60 = 0011 1100 
b = 13            # 13 = 0000 1101 
c = 0
 
c = a & b        # 12 = 0000 1100
print ("1 - c 的值为:", c)
 
c = a | b        # 61 = 0011 1101 
print ("2 - c 的值为:", c)
 
c = a ^ b        # 49 = 0011 0001
print ("3 - c 的值为:", c)
 
c = ~a           # -61 = 1100 0011
print ("4 - c 的值为:", c)
 
c = a << 2       # 240 = 1111 0000
print ("5 - c 的值为:", c)
 
c = a >> 2       # 15 = 0000 1111
print ("6 - c 的值为:", c)

以上表达式的结果

1 - c 的值为: 12
2 - c 的值为: 61
3 - c 的值为: 49
4 - c 的值为: -61
5 - c 的值为: 240
6 - c 的值为: 15
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值