计算机基础与python入门
本文目录:
一、计算机、cpu与存储器
1. 什么是编程语言
语言就是一个事物与另外一个事物沟通的介质/表达方式
编程语言即程序员与计算机沟通的介质
2. 什么是编程?为何要编程
编程就是程序员用计算机所能理解的表达方式(编程语言)来将自己的思维逻辑写下来,编程的结果就是一推文件,这些文件称之为软件/程序
3. 编程的目的:
就是人想要奴役计算机,让计算机代替人类去工作,从而解放人力
4. 运行程序的三大核心硬件:
cpu:运行+控制
内存
优点:存取速度快
缺点:断电数据丢失
硬盘
优点:可以永久保存数据,断电数据也不丢失
缺点:存取速度慢
重要:
运行程序,硬件的工作过程:
程序最先存放于硬盘
程序要运行必须从硬盘加载到内存
cpu去内存中取出指令->翻译->执行
1Bytes=8bit
1KB=1024Bytes
1MB=1024KB
1GB=1024MB
1TB=1024GB
1PB=1024TB
二、操作系统、编程语言及编写python、变量
操作系统
操作系统是一个协调\管理\控制计算机硬件资源与软件资源的一个控制程序
2. 为何要有操作系统
1. 把复杂硬件操作封装成简单的功能/接口用来给用户或者应用程序使用(文件)
2. 把应用程序多硬件的竞争变得有序
应用程序层
操作系统层
计算机硬件层
编程语言分类
优点:计算机无障碍理解,运行效率非常高
缺点:开发效率低
优点:比起机器语言开发效率高
缺点:开发效率比机器语言高,但仍然比较低
问题是计算机无法直接理解,程序是需要经过翻译才能被计算机理解执行的,按照
优点:执行效率高于解释型
缺点:开发效率低于解释型
2. 解释型Python:同声传译
优点:开发效率高于编译型
缺点:执行效率低于编译型
开发效率:解释型>编译型>汇编语言>机器语言
编写python
优点:调试程序方便
缺点:无法永久保存程序
变量
量:衡量/计量/记录某种状态
变:记录下来的某种状态是可以发生变化的
为了让计算机能够像人一样去识别世间万物,
如何识别,就是把事物的特征记录下来=>变量的定义
变量的使用必须遵循:先定义,后引用
# 一: 定义变量
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=''
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 == '':
print('开始浏览商品....')
elif choice == '':
print('正在添加购物车....')
elif choice == '':
print('正在支付....')
elif choice == '':
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])
计算机基础与python入门的更多相关文章
- 316python 基础之计算机基础、Python简介、变量、注释、基础数据类型初识、if、while、语句
一.计算机基础. cpu:相当于人的大脑,运算与控制中心. 速度 飞机 内存:4G,8G,16G....暂时存储,供给cpu数据. 速度 高铁.成本高,断电即消失. 硬盘:相当于你电脑的数据库,存储着 ...
- 计算机基础,Python基础--变量以及简单的循环
一.计算机基础 1.CPU 相当于人体的大脑,用于计算处理数据. 2.内存 用于存储数据,CPU从内存调用数据处理计算,运算速度很快. PS:问:既然在内存里的数据CPU运算速度快,为什么计算机不全 ...
- 计算机基础与python安装
计算机基础 内容详细: 一.计算机基础 1. 计算机什么组成的 输入输出设备 cpu 硬盘 内存 中央处理器 处理各种数据 相当于人的大脑 内存 存储数据 硬盘 存储数据的 2. 什么是操作系统 控制 ...
- 计算机基础、python历史,环境,分类,安装
一.计算机基础 CPU:大脑,处理数据,计算 内存:临时储存数据,运行速度快,成本高,断电数据会消失:4G,8G,16G,32G 硬盘:1T,固态硬盘,机械硬盘:储存数据,文件,能长久保存 操作系统: ...
- 零基础小白Python入门必看:面向对象之典型魔术方法
- 给有C或C++基础的Python入门 :Python Crash Course 5 if语句
本章就是Pyhon版的 if语句.原理大家都懂,就不一一说说明了. 值得注意的两点: 1. 在每个if类语句结尾必须加上符号“:”. 2. 注意,在python中是否缩进代表与上一行代码是否有关. 下 ...
- 给有C或C++基础的Python入门 :Python Crash Course 1 - 3
暑假ACM集训结束,预习下个学期要学习的Python. 前几章比较基础,玩玩学学很快学完了,这里随意写点收获. 第一章 搭建编译环境 用的是最新的Python3.编译器用的是推荐的Geany..具 ...
- 给有C或C++基础的Python入门 :Python Crash Course 4 操作列表 4.4 -- 4.5
上接前一篇文章. 4.4 使用列表的一部分 一,切片 切边,顾名思义,就是处理列表的部分元素. 我们可以联系一下C++的一段语句:for(int i = 0; i < n-2; ++i) cou ...
- 给有C或C++基础的Python入门 :Python Crash Course 4 操作列表 4.1--4.3
操作列表,也就是遍历列表.本章我们要学的就是如何遍历列表. 4.1--4.2 遍历列表 遍历列表,用for循环. 不同于C++或者C语言的for循环,Python的for循环更容易让人理解. 看一个例 ...
随机推荐
- Linux操作系统使用RPMBUILD命令打包RPM的详细步骤
首先,我们需要了解一些预备知识,在旧版本的CentOS中,rpmbuild工具默认的工作路径是/usr/src/redhat,因为权限原因,一般用户身份不能制作rpm软件包,只能切换到root身份才能 ...
- WebsSocket
本篇阅读目录 一.Websocket原理(握手.解密.加密) 二.基于Python实现简单示例 回到顶部 一.Websocket原理(握手.解密.加密) WebSocket协议是基于TCP的一种新的协 ...
- 12-1 TCP/IP协议栈
TCP/IP协议栈 有限状态机FSM:Finite State Machine CLOSED 没有任何连接状态 LISTEN 侦听状态,等待来自远方TCP端口的连接请求 SYN-SENT 在发送连接请 ...
- CentOS7.5安装GitLab及汉化
一.GitLab英文版安装 1.下载gitlab安装包,然后安装 wget --content-disposition https://packages.gitlab.com/gitlab/gitla ...
- stat中的st_dev和st_rdev
目录 stat中的st_dev和st_rdev title: stat中的st_dev和st_rdev date: 2019/11/27 21:04:25 toc: true --- stat中的st ...
- [bzoj1151][CTSC2007]动物园zoo_状压dp
动物园zoo 题目大意:https://www.lydsy.com/JudgeOnline/problem.php?id=1151 题解: 我们发现每个点只会往右延伸$5$个,这个数非常小. 再加上每 ...
- javascript学习笔记 BOM和DOM详解
js组成 我们都知道, javascript 有三部分构成,ECMAScript,DOM和BOM,根据宿主(浏览器)的不同,具体的表现形式也不尽相同,ie和其他的浏览器风格迥异. 1. DOM 是 W ...
- Docker下mysql容器开启binlog日志(保留7天)
现有需求开启用Docker容器启动的mysql数据库的binlog,以作为 日志记录 和 数据恢复,我们了解了MySQL的binlog日志的开启方式以及binlog日志的一些原理和常用操作,我们知道, ...
- 使用mybatis出现异常:invalid comparison: java.time.LocalDateTime and java.lang.String
整了半天终于找到问题所在:在mapper文件中,对该参数进行了和字符串的对比,如下: <if test="startTime != null and startTime != '' a ...
- mysql-事务总结
目录 事务基本概念 事务的定义 使用事务 自动提交 特殊操作 ACID特性及其原理 原子性(A) 持久性 (D) 隔离性 脏读.不可重复读和幻读 事务隔离级别 mysql事务日志 redo log 定 ...