第一章 基础入门
1.1.1 计算机组成
计算机硬件都有CPU,主板,内存,硬盘,显卡,电源,散热器,键盘,鼠标,音响等等。
1.1.2 操作系统
操作系统,可以控制和协调电脑的各个组件进行协同工作 。
常见操作系统:
-
windows,丰富的图形化界面、收费、大量工具、适用于个人办公。
windows xp windows 7 windows 10 windows server
-
centos ubuntu redhat
-
Mac,Os,人性化交互好、好看好用、适用于个人使用。
注意:操作系统是由程序员研发的。
1.1.3 软件/网站
电脑装上系统后,都会安装一些软件,如:浏览器、office、游戏、杀毒等。 关于软件有两点需要大家了解:
-
软件需要运行在操作系统之上。
-
软件等都是由程序员开发的。
1.1.4 解释器/编译器
程序员需要掌握一门编程语言,如:C、C++、Python、Go、Java等,根据编程语言的规则来写代码,最终代码运行起来就是所谓的软件或应用程序了。 每种编程语言的代码要想运行,必须依赖自己语言的编译器或解释器(解释器或编译器是由编程语言的创始人开发)。
编程语言的开发者写的一个工具,将用户写的代码转换成010101交给操作系统去执行。
1.2 Python基础入门
1.2.1 解释型和编译型语言
解释型语言就类似于: 边执行边翻译,代表:Python / Ruby / Perl
编译型语言类似于:说完之后,整体再进行翻译,代表:C / C++ / Java / Go ...
1.2.2 进制
对于计算机而言无论是文件存储 / 网络传输输入本质上都是:二进制(010101010101),如:电脑上存储视频/图片/文件都是二进制; QQ/微信聊天发送的表情/文字/语言/视频 也全部都是二进制。
进制:
# 2进制,计算机内部使用。 # 8进制,计算机系统使用。 # 10进制,人来进行使用一般情况下计算机可以获取10进制,然后再内部会自动转换成二进制并操作。 # 16进制,一般用于表示二进制(用更短的内容表示更多的数据),一版是:\x 开头。
1.2.3 输出
写代码就是为了让计算机为我们工作,我们交给计算机一些数据,然后让计算机去工作,最后将结果呈现出来。 print() 括号里面的内容就是要输出的内容,如果是文字和字母需要用英文的引号引起来,数字直接写就可以啦。
# python2 输出写法: print 'hello world' # python3 输出写法: print('hello world') # 我们学习的python3版本,python2版本是什么样也要知道
1.2.4 变量
变量在python中经常使用,变量可以暂存一些临时数据。
name = 'Meet' # 这样的形式就是在定义一个变量 # name 是一个变量名 # = 是一个赋值操作 # 赋值就是将值交给name # 'Meet' 是一个值
变量的命名规则
- 变量名只能是 字母、数字或下划线的任意组合。 - 变量名的第一个字符不能是数字。 - 不能用python内置关键字。 [‘and’, ‘as’, ‘assert’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘except’, ‘exec’, ‘finally’, ‘for’, ‘from’, ‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘not’, ‘or’, ‘pass’, ‘print’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’] - 建议: - 变量名建议不使用拼音和中文 - 变量的要具有意义 - 变量名不要过长 - 变量名要区分大小写 - 变量名推荐写法: - 驼峰体 MeetTheGirl - 推荐:下划线 meet_the_girl
变量的赋值
age1 = 18 age2 = age1 age1 = 12 age3 = age2 # 释型语言是从上至下依次执行,每执行一行,后面的将会把前面的覆盖。
1.2.5 常量
常量就是将变量名大写,尽量保持不更改的一种量,这从设计之初就是不让任何人改变的,所以这个东西就是常量。
1.2.6 注释
注释: 我们来看一下怎么用
# 这个就是给这一行进行注释,注释后的代码不会执行 ''' 这种的是多行注释, 就是咱们注释的内容可以 进行换行 ''' # pycharm 中 Ctrl+/ 就可以多行#注释
1.2.7 基础数据类型
Python中常用的数据类型有多种,暂只说3种, 数字、字符串、布尔类型。
整型
数字int是整型;也就是我们从小就接触的数学中的整数,整型在计算机中运于计算和比较。
在32位机器上的int的范围是: -231~231-1,即-2147483648~2147483647
在64位机器上的int的范围是: -263~263-1,即-9223372036854775808~9223372036854775807.
num1 = 2 num2 = 3 print(num1 + num2) # 结果: 5 整型就和我们学的数学一样可以进行加减乘除
字符串
在Python中,凡是用引号引起来的,全是字符串。
# 字符串的拼接 s1 = 'a' s2 = 'bc' # str*int name = '坚强' print(name*8)
字符可以用单引号,双引号,或者三引号引起来,没有什么区别,只是一些特殊的格式需要不用的引号。比如:
msg = " I'm 22 years" 这个就需要单双引号配合。 msg = """ 111 222, 333, 444。 """ #想多行赋值一个字符,就需要三引号。
布尔值
尔值中一共分为俩个状态。
True 就对应我们话中的是,就是真。
False 就对应我们话中的非,就是假。
print(3>7) # 结果: False print(7>3) # 结果: True
1.2.8 输入
input就是固定格式,他是输入的意思。括号里边的内容是提示是给用户看的提示语句,用户输入的内容让input接收了然后赋值给了变量s。
# 将用户输入的内容赋值给name变量 # python2的写法 name = raw_input("请输入用户名:") print name # python3的写法 name = input("请输入用户名:") print(name)
注意:input程序交互获取到的内容是字符串
1.3.1 流程控制
If 条件: 引号是将条件与结果分开。
结果 一个tab键,这个是告诉程序满足这个条件的结果。
num = input('请输入要比较的数字:') if int(num) >= 22: print('可以扯证了') elif int(num) >= 18: print('成年了') else: print('还是小屁孩')
以上写法就是我们做的单选题一样,三个分支判断中只要有个成立,其余都不在执行。
嵌套 if
name = input('请输入账户名:') if name == 'admin': word = input('请输入密码:') if word == '1234': print('输入全部正确') else: print('密码输入错误!') else: print('账户输入错误!')
这样写法很常用,这样我们就可以明确的知道用户输入的名字和密码那个是错误的,并且还做一个判断。如果名字正确后在进行判断密码。
# while 条件: 循环体 # 如果条件为真,那么循环则执行 # 如果条件为假,那么循环结束
# 控制while循环的次数 count = 0 while count < 100: count = count + 1
word = 'hello word' for i in word: print(i)
num = 1 while num <6: print(num) num+=1 break print("end")
1.3.5 关键字:continue
定义:continue 用于退出当次循环,继续下次循环。
num = 1 while num <6: print(num) num+=1 continue print("end")
name = input('请输入姓名:') mun = input('请输入年龄:') dd = input('请输入学习进度(百分比):') print(""" 我的名字是:%s, 我的年龄是:%d岁, 目前学习进度:%s%%"""%(name,int(mun),dd))
以下假设变量a为10,变量b为21:
| 运算符 | 描述 | 实例 |
|---|---|---|
| + | 加 - 两个对象相加 | a + b 输出结果 31 |
| - | 减 - 得到负数或是一个数减去另一个数 | a - b 输出结果 -11 |
| * | 乘 - 两个数相乘或是返回一个被重复若干次的字符串 | a * b 输出结果 210 |
| / | 除 - x 除以 y | b / a 输出结果 2.1 |
| % | 取模 - 返回除法的余数 | b % a 输出结果 1 |
| ** | 幂 - 返回x的y次幂 | a**b 为10的21次方 |
比较运算:以下假设变量a为10,变量b为20:
| 运算符 | 描述 | 实例 |
|---|---|---|
| == | 等于 - 比较对象是否相等 | (a == b) 返回 False。 |
| != | 不等于 - 比较两个对象是否不相等 | (a != b) 返回 True。 |
| > | 大于 - 返回x是否大于y | (a > b) 返回 False。 |
| < | 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。 | (a < b) 返回 True。 |
| >= | 大于等于 - 返回x是否大于等于y。 | (a >= b) 返回 False。 |
| <= | 小于等于 - 返回x是否小于等于y。 | (a <= b) 返回 True。 |
赋值运算:以下假设变量a为10,变量b为20:
| = | 简单的赋值运算符 | c = a + b 将 a + b 的运算结果赋值为 c |
| += | 加法赋值运算符 | c += a 等效于 c = c + a |
| -= | 减法赋值运算符 | c -= a 等效于 c = c - a |
| *= | 乘法赋值运算符 | c *= a 等效于 c = c * a |
| /= | 除法赋值运算符 | c /= a 等效于 c = c / a |
| %= | 取模赋值运算符 | c %= a 等效于 c = c % a |
| **= | 幂赋值运算符 | c **= a 等效于 c = c ** a |
| //= | 取整除赋值运算符 | c //= a 等效于 c = c // a |
逻辑运算:以下假设变量 a 为 10, b为 20:
| 运算符 | 逻辑表达式 | 描述 | 实例 |
|---|---|---|---|
| and | x and y | 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 | (a and b) 返回 20。 |
| or | x or y | 布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。 | (a or b) 返回 10。 |
| not | not x | 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 | not(a and b) 返回 False |
逻辑运算的进一步研究:
在没有 ( ) 的情况下 not 优先级高于 and,and优先级高于or,即优先级关系为 ( ) > not > and > or ,同一优先级从左往右计算。
成员运算
判断子元素是否在原字符串(字典,列表,集合)中:
-
-
not in
运算符优先级
| 运算符 | 描述 |
|---|---|
| ** | 指数 (最高优先级) |
| ~ + - | 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) |
| * / % // | 乘,除,求余数和取整除 |
| + - | 加法减法 |
| >> << | 右移,左移运算符 |
| & | 位 'AND' |
| ^ | | 位运算符 |
| <= < > >= | 比较运算符 |
| == != | 等于运算符 |
| = %= /= //= -= += *= **= | 赋值运算符 |
| is is not | 身份运算符 |
| in not in | 成员运算符 |
| not and or | 逻辑运算符 |
1.3.8 编码
实际上电脑的存储和发送都是010101啊。我们发送的内容都是010101010,这样写的内容比较多,就不知道是什么了。所以我们想要明确的区分,出来发送的内容就需要在某个地方进行分段。计算机中设定的就是8位一断句。
ASCII :
计算机: 储存文件,或者是传输文件,实际上是010101010 计算机创建初期,美国,是7位一段,但是发明者说为了拓展,留出一位,这样就是8位一段句。 8位有多少种可能 ?256 密码本: ascii 0000 0001 = A 0100 0001 0100 0010 0100 0011 = ABC
国标码:GBK
字母A:0100 0001 # ASCII
字母A:0000 0000 0100 0001 # 国标码
万国码:Unicode
占用2个字节表示一个字符。英文: 一个英文2个字节。中文:一个中文用4个字节。
UTF-8:
对Unicode进行升级:
utf-8: 用最少用8位数,去表示一个字符。英文: 8位,1个字节表示。欧洲文字: 16位,两个字节表示一个字符。中文,亚洲文字: 24位,三个字节表示。
utf-16: 用最少用16位数。
8bit = 1byte 1024byte = 1KB 1024PB = 1EB 1024KB = 1MB 1024EB = 1ZB 1024MB = 1GB 1024ZB = 1YB 1024GB = 1TB 1024YB = 1NB 1024TB = 1PB 1024NB = 1DB 常⽤到TB就够了
浙公网安备 33010602011771号