计算机基础与python入门
本文目录:
一、计算机、cpu与存储器
1. 什么是编程语言
语言就是一个事物与另外一个事物沟通的介质/表达方式编程语言即程序员与计算机沟通的介质
2. 什么是编程?为何要编程
编程就是程序员用计算机所能理解的表达方式(编程语言)来将自己的思维逻辑写下来,编程的结果就是一推文件,这些文件称之为软件/程序3. 编程的目的:
就是人想要奴役计算机,让计算机代替人类去工作,从而解放人力4. 运行程序的三大核心硬件:
cpu:运行+控制内存
优点:存取速度快
缺点:断电数据丢失
硬盘
优点:可以永久保存数据,断电数据也不丢失
缺点:存取速度慢
重要:
运行程序,硬件的工作过程:
程序最先存放于硬盘
程序要运行必须从硬盘加载到内存
cpu去内存中取出指令->翻译->执行
1一个二进制位称之为1bit
1Bytes=8bit
1KB=1024Bytes
1MB=1024KB
1GB=1024MB
1TB=1024GB
1PB=1024TB
1Bytes=8bit
1KB=1024Bytes
1MB=1024KB
1GB=1024MB
1TB=1024GB
1PB=1024TB
二、操作系统、编程语言及编写python、变量
操作系统
1. 什么是操作系统
操作系统是一个协调\管理\控制计算机硬件资源与软件资源的一个控制程序
2. 为何要有操作系统
1. 把复杂硬件操作封装成简单的功能/接口用来给用户或者应用程序使用(文件)
2. 把应用程序多硬件的竞争变得有序
操作系统是一个协调\管理\控制计算机硬件资源与软件资源的一个控制程序
2. 为何要有操作系统
1. 把复杂硬件操作封装成简单的功能/接口用来给用户或者应用程序使用(文件)
2. 把应用程序多硬件的竞争变得有序
3. 如何用操作系统
一套完整的计算机系统分为三层:
应用程序层
操作系统层
计算机硬件层
应用程序层
操作系统层
计算机硬件层
编程语言分类
1. 机器语言(直接操作硬件):直接使用二进制指令去编写程序
优点:计算机无障碍理解,运行效率非常高
缺点:开发效率低
优点:计算机无障碍理解,运行效率非常高
缺点:开发效率低
2. 汇编语言(直接操作硬件):使用英文标签代替二进制指令去编写程序
优点:比起机器语言开发效率高
缺点:开发效率比机器语言高,但仍然比较低
优点:比起机器语言开发效率高
缺点:开发效率比机器语言高,但仍然比较低
3. 高级语言:直接使用人能力理解的表达方式去编写程序
问题是计算机无法直接理解,程序是需要经过翻译才能被计算机理解执行的,按照
问题是计算机无法直接理解,程序是需要经过翻译才能被计算机理解执行的,按照
翻译方式的不同,分为两种:
1. 编译型C:谷歌翻译
优点:执行效率高于解释型
缺点:开发效率低于解释型
2. 解释型Python:同声传译
优点:开发效率高于编译型
缺点:执行效率低于编译型
优点:执行效率高于解释型
缺点:开发效率低于解释型
2. 解释型Python:同声传译
优点:开发效率高于编译型
缺点:执行效率低于编译型
执行效率:机器语言>汇编语言>编译型>解释型
开发效率:解释型>编译型>汇编语言>机器语言
开发效率:解释型>编译型>汇编语言>机器语言
编写python
执行python程序有两种方式:
1. 交互式环境:输入代码立即执行
优点:调试程序方便
缺点:无法永久保存程序
优点:调试程序方便
缺点:无法永久保存程序
2 代码写入文件,文件的名test.py
打开cmd执行:python3 D:\test.py
优点:永久保存程序
变量
1. 什么是变量
量:衡量/计量/记录某种状态
变:记录下来的某种状态是可以发生变化的
量:衡量/计量/记录某种状态
变:记录下来的某种状态是可以发生变化的
2. 为何要用变量
为了让计算机能够像人一样去识别世间万物,
如何识别,就是把事物的特征记录下来=>变量的定义
为了让计算机能够像人一样去识别世间万物,
如何识别,就是把事物的特征记录下来=>变量的定义
3. 如何用变量
变量的使用必须遵循:先定义,后引用
变量的使用必须遵循:先定义,后引用
# 一: 定义变量 x=10 name = 'egon' age=18 salary=3.1 # 定义一个变量分为三部分: # 1. 变量名:变量名是访问到值的唯一方式 # 2. 赋值符号:将值的内存地址"赋值"给变量名 # 3. 变量的值:记录状态 # print(age) # 二: 变量名的命名规范: # 大前提:变量名的命名应该对值有描述性的功能 #1. 变量名只能是 字母、数字或下划线的任意组合 #2. 变量名的第一个字符不能是数字 #3. 关键字不能声明为变量名 # 三: 变量名的命名风格: # 1. 驼峰体: # OldboyOfAge=73 # 2. 下划线纯小写式 # oldboy_of_age=73 # 在python中变量名的命名推荐使用2 # 补充:!!!!!!运行python程序的三个阶段!!!!!! # python3 D:\test.py # 1. 先启动python解释器 # 2. python解释器将python文件由硬盘读入内存 # 3. python解释器解释执行刚刚读入内存的代码,开始识别python语法 # 引用计数:计算值被关联了多少个变量名 # 引用计算一旦为零就是垃圾,会被python的垃圾回收机制自动清理 # 引用技术增加 # x=10 # y=x # 引用技术减少 # x=10 # del x # 解除变量名与值10内存地址的绑定关系 # x=11 x=1111
变量剩余
#一 变量值具备三个特征: # 1. id: 变量值的唯一编号,内存地址不同id则不同 # 2. type:类型 # 3. value # name='egon' # print(id(name)) # age=18 # print(id(age)) # x=10 # y=x # print(id(x),id(y)) # age=10 # print(id(age)) # print(type(age)) # print(age) #二: is与== #is身份运算:比较的是id是否相等 #==判断值是否相等 x=10 y=x print(id(x),id(y)) print(x is y) #id相等,值一定相等 print(x == y) ''' 值相等id不一定相等 >>> x=111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 >>> y=111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 >>> id(x) 2181129522824 >>> id(y) 2181129523040 >>> x is y False >>> x == y True ''' # x=100000000000000000000000000000000000000 # y=100000000000000000000000000000000000000 print(x is y) # 三 常量 OLDBOY_OF_AGE=73 OLDBOY_OF_AGE=74 print(OLDBOY_OF_AGE)
三、数据类型、输入输出及基本运算
基本数据类型
''' 1. 什么是数据类型 变量值即我们存放的数据,数据类型及变量值的类型 2. 变量值为何要区分类型 因为变量值使用记录现实世界中事物的特征,针对不同的特征就应该用不同类型的值去标识 3. 如何应用数据类型 ''' # 一 数字类型: # 1. 整型int: 年龄\身份证号\电话号码\等级 # age=18 # age=int(18) # print(id(age),type(age),age) # 2. 浮点型float:薪资\身高\体重 # salary=3.1 #salary=float(3.1) # print(id(salary),type(salary),salary) # 二 字符串类型str: 名字\家庭住址\单个爱好\性别等等描述性质的特征 # 定义:在引号(单引号\双引号\三引号)内包含一串字符 # name1='egon' # name2="egon" # name3="""egon""" # print(type(name1)) # print(type(name2)) # print(type(name3)) # msg='my name is "egon"' # print(msg) msg1='hello' msg2='world' # res=msg1 + msg2 # print(res,type(res)) # print(msg1) # print('='*100) # print(msg2) # 三 列表list: 记录多个值,比如人的多个爱好,一个班级多个学生的性别 #定义:在[]内用逗号分隔开多个任意类型的值 l=[1,3.1,'aa',['a','b','c',['aaaa','bbbb']]] # print(l) # print(l[0]) # print(l[2]) # print(l[3][1]) # print(l[3][3][0]) # 四 字典dict: 记录多个key:value值, # 引子: # students=['egon','lxx','yxx'] # print(students[0]) # name age sex level hobbies # info=['egon',18,'male',10,['music','read','dancing']] # print(info[0]) # print(info[2]) # 定义:在{}内用逗号分隔开多个key:value的值,其中value可以是任意数据类型, # 而key通常应该是字符串类型 info={ 'name':'egon', 'age':18, 'sex':'male', 'level':10, 'hobbies':['music','read','dancing'] } #info=dict(...) # print(type(info)) # print(info['level']) # print(info['age']) # print(info['hobbies'][1]) # emp_info={ # 'name':'egon', # 'hobbies':['play','sleep'], # 'company_info':{ # 'name':'Oldboy', # 'type':'education', # 'emp_num':40, # } # } # print(emp_info['company_info']['name']) # 五: 布尔类型bool: True/False,用来标识条件是否成立 # age=18 # # print(age > 30) # print(age < 30) # 所有类型的值都自带布尔值: 当数据类型的值为0,None,空时,布尔值为False,除此以外都为True # print(bool(0)) # print(bool(None)) # print(bool('')) # print(bool([])) # print(bool({})) # print(bool(1)) if None: print('条件成立了11确实大于10的')
输入输出
# 在python3中的input会将用户输入的任何内容都存成str类型 # name=input("请输入您的用户名: ") #name="egon" # pwd=input("请输入您的密码: ") #pwd='123' # if name == 'egon' and pwd == '123': # print('登陆成功') # else: # print('用户名或者密码输错了傻叉') # 了解: # 在python3中只有一个input,而python2中有input和raw_input # 1.其中python2的raw_input与python3的input是一样 # 2 不一样的是:python2的input要求使用者必须输入一个明确的数据类型,输入什么类型就存成什么类型 # age=input('>>>: ') #age="18" # print(age,type(age)) # age=int(age) #age=int("18") #age=18 # print(age > 30) # name=input('请输入您的用户名: ') # age=input('请输入您的年龄: ') # print('my name is my age is ',name,age) # print('my name is ',name,'my age is ',age) # print('my name is %s my age is %s' %(name,age)) # print('my name is %s my age is %s' %([1,2,3],18)) #%s可以收任意类型的值 # print('my name is %s my age is %d' %('egon',18)) # print('my name is %s my age is %d' %('egon','18')) #%d只能接收整型
基本运算符
#1 算术运算 # print(10 + 1.1) # print(10 / 3) # 有整数部分有余数部分 # print(10 // 3) # 去掉小数部分 # print(10 % 3) #取余 # print(2 ** 3) #2 比较运算 #比较运算只能在同类型之间进行,其中int与float同属于数字类型 # print(10 > 3.1) # print(10 >= 10) # 了解 # msg1='abcdefg' # msg2='abce' # print(msg2 > msg1) # list1=['a',1,'b'] # list2=['a',2] # list2=['a','b'] # list2=['c','b'] # print(list2 > list1) #3 赋值运算 #3.1 增量赋值 # age=18 # age=age + 1 # age+=1 # age=age+1 # print(age) # x=10 # x%=3 #x=x%3 # print(x) #3.2 链式赋值 # x=10 # y=x # print(x is y) # a=b=c=d=e=111 # print(a is b is c is d is e) #3.3 交叉赋值 # x=10 # y=20 # # temp=x # x=y # y=temp # x,y=y,x # print(x,y) #3.4 解压赋值 nums=[1,2,3,4,5] # a=nums[0] # b=nums[1] # c=nums[2] # d=nums[3] # e=nums[4] # a,b,c,d,e=nums # print(a,b,c,d,e) # a,b,c,_,_=nums #_=5 # print(a,b,c) # print(_) # a,b,*_=nums # # print(a,b) #4 逻辑运算:and,or,not # and:连接左右两个条件,两个条件必须都成立,最后结果才为True,一旦左边条件为假则最终结果就为假,没有必要再去计算右面条件的值 # print(1 > 2 and 3 > 1) # or:连接左右两个条件,两个条件但凡有一个成立,结果就为True,一旦左边条件为True则最终结果就为True,没有必要再去计算右面条件的值, # 一旦左边条件为False,还需要去计算右面条件的值,如果为True,最终也True # not:取反 # print(not 1 > 2 or 3 > 1) # print(not 1 > 2) print((True and (False or True)) or (False and True)) #5 身份运算:is与==
四、流程控制之if判断、while与for循环
if判断
# for循环主要用于循环取值 student=['egon','虎老师','lxxdsb','alexdsb','wupeiqisb'] # i=0 # while i < len(student): # print(student[i]) # i+=1 # for item in student: # print(item) # for item in 'hello': # print(item) # dic={'x':444,'y':333,'z':555} # for k in dic: # print(k,dic[k]) # for i in range(1,10,3): # print(i) # for i in range(10): # print(i) student=['egon','虎老师','lxxdsb','alexdsb','wupeiqisb'] # for item in student: # print(item) for i in range(len(student)): print(i,student[i])
while循环
''' 1. 什么是循环 循环指的是一个重复做某件事的过程 2. 为何要有循环 为了让计算机能够像人一样重复做某件事 3. 如何用循环 ''' # while循环的语法:while循环又称为条件循环,循环的次数取决于条件 ''' while 条件: 子代码1 子代码2 子代码3 ''' # print('start....') # while True: # name=input('please your name>>: ') # pwd=input('please your password>>: ') # if name == 'egon' and pwd == '123': # print('login successful') # else: # print('user or password err') # print('end...') # 如何结束while循环 # 方式一:操作while循环的条件让其结束 # print('start....') # tag=True # while tag: # name=input('please your name>>: ') # pwd=input('please your password>>: ') # if name == 'egon' and pwd == '123': # print('login successful') # tag=False # else: # print('user or password err') # # print('end...') # 方式二: break强行终止本层循环 # count=1 # while count < 6: # print(count) # count+=1 # count=1 # while True: # if count > 5: # break # print(count) # count+=1 # print('start....') # while True: # name=input('please your name>>: ') # pwd=input('please your password>>: ') # if name == 'egon' and pwd == '123': # print('login successful') # break # else: # print('user or password err') # # print('end...') # 输错三次则退出 # 方式一: # print('start....') # count=0 # while count <= 2: #count=3 # name=input('please your name>>: ') # pwd=input('please your password>>: ') # if name == 'egon' and pwd == '123': # print('login successful') # break # else: # print('user or password err') # count+=1 # # print('end...') # 方式二 # print('start....') # count=0 # while True: # if count == 3: # print('输错的次数过多傻叉') # break # name=input('please your name>>: ') # pwd=input('please your password>>: ') # if name == 'egon' and pwd == '123': # print('login successful') # break # else: # print('user or password err') # count+=1 # # print('end...') # while+continue:continue代表结束本次循环,直接进入下一次 # count=1 # while count < 6: # if count == 4: # count+=1 # continue # 只能在cotinue同一级别之前加代码 # print(count) # count+=1 # # # while True: # print('11111') # print('22222') # print('333') # continue # 不应该将continue作为循环体最后一步执行的代码 # while+else # count=1 # while count < 6: # if count == 4: # break # print(count) # count+=1 # else: # print('会在while循环没有被break终止的情况下执行') # 输错三次则退出之while+else的应用 # print('start....') # count=0 # while count <= 2: #count=3 # name=input('please your name>>: ') # pwd=input('please your password>>: ') # if name == 'egon' and pwd == '123': # print('login successful') # break # else: # print('user or password err') # count+=1 # else: # print('输错的次数过多') # # print('end...') # while循环的嵌套 # name_of_db='egon' # pwd_of_db='123' # print('start....') # count=0 # while count <= 2: #count=3 # name=input('please your name>>: ') # pwd=input('please your password>>: ') # if name == name_of_db and pwd == pwd_of_db: # print('login successful') # while True: # print(""" # 1 浏览商品 # 2 添加购物车 # 3 支付 # 4 退出 # """) # choice=input('请输入你的操作: ') #choice='1' # if choice == '1': # print('开始浏览商品....') # elif choice == '2': # print('正在添加购物车....') # elif choice == '3': # print('正在支付....') # elif choice == '4': # break # break # else: # print('user or password err') # count+=1 # else: # print('输错的次数过多') # # print('end...') # tag控制所有while循环 name_of_db='egon' pwd_of_db='123' tag=True print('start....') count=0 while tag: if count == 3: print('尝试次数过多') break name=input('please your name>>: ') pwd=input('please your password>>: ') if name == name_of_db and pwd == pwd_of_db: print('login successful') while tag: print(""" 1 浏览商品 2 添加购物车 3 支付 4 退出 """) choice=input('请输入你的操作: ') #choice='1' if choice == '1': print('开始浏览商品....') elif choice == '2': print('正在添加购物车....') elif choice == '3': print('正在支付....') elif choice == '4': tag=False else: print('user or password err') count+=1 print('end...')
for循环
# for循环主要用于循环取值 student=['egon','虎老师','lxxdsb','alexdsb','wupeiqisb'] # i=0 # while i < len(student): # print(student[i]) # i+=1 # for item in student: # print(item) # for item in 'hello': # print(item) # dic={'x':444,'y':333,'z':555} # for k in dic: # print(k,dic[k]) # for i in range(1,10,3): # print(i) # for i in range(10): # print(i) student=['egon','虎老师','lxxdsb','alexdsb','wupeiqisb'] # for item in student: # print(item) for i in range(len(student)): print(i,student[i])