一、操作系统
完整的计算机系统:应用软件,操作系统,计算机硬件
什么是操作系统:
是一个协调、管理、控制计算机硬件与软件的控制程序
操作系统分成两部分:
接口程序:就是将硬件功能封装一层给应用软件和用户使用,好比软件与软件之间交互的接口为了方便调用都封装一个接口可以给多个应用调用实现一对多方便快捷
内核:具体控制硬件。
内核态与用户态(了解)
cpu的两种工作状态
用户态:cpu执行用户程序/应用程序所处的状态,处于用户态不能控制硬件--->比如QQ、微信
内核态:cpu执行操作系统内核所处的状态,处于内核态能够控制硬件----.操作系统
应用程序的启动:
前提:先启动操作系统
先向操作系统提交存放文件的绝对路径,再把硬盘上的数据读入内存,然后操作系统通过CPU来调用内存当中程度代码
二、编程语言
编程语言分类:机器、汇编、高级语言
机器语言:用二进制指令编程,本质是直接操作硬件
优点:执行效率高
缺点:开发效率低、学习难度高
汇编语言:用英文标签代替二进制指令,本质也是直接操作硬件
优点:执行效率高
缺点:开发效率低、学习难度高
高级语言:用人类的语言去编写程序,所以要一个翻译器把人类语言翻译成机器语言,不需要直接操作硬件
优点:跨平台、开发效率高、学习难度低
缺点:执行效率没有上述两种语言快
高级语言按翻译方式分两种:解释、编译
编译型:C、java
类似与谷歌翻译-->gcc
特点:编译一次可以重复利用无需重复执行
程序---->gcc----->机器语言
执行:机器语言---->CPU
优点:执行快
缺点:调试麻烦
解释型:Python、类似于同声传译
特点:边翻译边执行
程序---->解释器----->机器语言----->CPU
优点:调试程序方便
缺点:执行慢
PS:
学习难度:从高到低
执行效率:从高到低
开发效率:从低到高
python解释器安装,多版本共存
我的电脑-》属性-》高级系统设置-》环境变量-》修改系统PATH
win10:直接添加
win7:C:\Users\oldboy1;C:\Users\oldboy2;C:\Users\oldboy3;D:\python36
mac:
/etc/profile
PATH=python的安装路径:$PATH
export PATH
source /etc/profile
第一个python程序,两种运行程序的方式
交互式:调试程序
1、python 程序的路径:python D:\test.txt (强调,后缀名没有影响,但写成.py结尾是约定俗成)
2、直接双击应行text.py
重点:
先启动python解释器、再将test.py代码写入内存、解释执行
变量:
什么是变量?
变量是一种可以反映出状态变化的一种机制
为什么要有变量?
程序的执行本质就是一系列状态的变化
如何定义变量?
语法:变量名=值
例:
a=1
name='lige'
python自动的垃圾回收机制(了解)
垃圾:值身上的引用计数为0
增加引用计数
x=1
y=x
把X的值在内存中开一个空间然后Y指向这个值不另外开僻空间。
减少引用计数
x='egon'
del y # 删除y与1的绑定关系
变量的命名规范?
#1. 变量名只能是 字母、数字或下划线的任意组合
#2. 变量名的第一个字符不能是数字
#3. 关键字不能声明为变量名
定义方式?
驼峰体:英文开头首字母大写
AgeOfOldboy=58
下划线:英文以下划线连接(python 推荐使用)
age_of_oldboy=58
变量的三个特征(重点)
id:type ,value
示范:
>>> a='1'
>>> print(id(a),type(a),a)
25258880 <class 'str'> 1
>>id
==:比较的是值 value
is:身份运算,比较的是id
常量:不变的量
x=1
交互
input:输入的值为字符型
>>> a='1'
>>> print(id(a),type(a),a)
25258880 <class 'str'> 1
>>> a=input('name:')
name:1
>>> print(id(a),type(a),a)
25258880 <class 'str'> 1
注释
单行用#,多行用""" """
数字:int 整数 1、4、
浮点型:float 小数 1.2 2.3
字符串:用单引号,双引号,三引号里字符类型没有区别,只是三引号可以多行
‘’‘
----a
----b
’‘’
字符串拼接用加或乘号
>>> a='li'
>>> b='ge'
>>> print(a+b)
lige
>>> print(a*5)
lilililili
列表:根据索引取值
>>> patient=[['lg',32,['a','b',]],['kj',33,['b','c']]]
>>> patient[0][2][1]
'b'
字典:按映射关系取值 key:value value可以是任意类型 key为不可变
>>> patient={'name:':'lg','age:':32,'hobby:':['a','b'],}
>>> patient['name:']
'lg'
>>> patient['hobby:'][0]
'a'
布尔型
True 和 False
除了NONE,0,空为假其它均为真
if ['', ]:--------true
print('a',)
可变:值变,ID不变
不可变:值变,ID变
格式化输出:
name=input('name')
age=input('age')
sex=input('sex')
job=input('job')
a='''
-----------info of %s -----------
Name : %s
Age : %s
Sex : %s
Job : %s
------------- end -------------
'''%(name,name,age,sex,job)
print(a)
namea
agea
sexa
joba
-----------info of a -----------
Name : a
Age : a
Sex : a
Job : a
------------- end -------------
基本运算符
if ....else
a=10
if a==10:
print('对了')
else
print('错了')
while 循环
while循环嵌套的小例子,用一个tag控制所有while循环的退出
tag = True
count=0
a='aa'
b='123'
while tag:
user_a = input('user')
user_b = input('password')
if b==user_b and a==user_a:
print('%s 成功'%user_a)
while range:
c = input('a:')
if c=='sa':
tag = False
break
else:
print('%s再试一次'%user_a)