Python之旅_第一章Python入门
一、编程语言分类
1.机器语言:即计算机能听懂的二进制语言,0000 0001,直接操控硬件;
2.汇编语言:简写的英文标识符代替二进制语言,本质同样是直接操控硬件;
3.高级语言:用更贴近人类的语言去编程,计算机不能直接读懂,也不能直接操控硬盘;
高级语言不能直接被计算机读懂,必须用编译器或解释器将代码翻译成二进制后才能被计算机执行。
1.编译型:把一篇编程代码直接翻译成计算机能读懂的二进制语言,然后执行。(如c语言)
编译型因整篇翻译,执行速度快,但也因是整篇翻译,一但出现错误,就需要慢慢查找,调试麻烦;
2.解释型:一句一句翻译,一句一句执行。(如Python语言)
解释型因逐句翻译执行,导致执行速度变慢。但调试方便,一但哪一句出现出现错误,直接停止修改,很方便;
因开发人员追求开发速度,最快的创造价值,一般都是选择解释型。
总结:
机器语言:最底层,执行快,开发效率低;
汇编语言:比较低层,执行快,开发效率低;
高级语言:编译型:执行快,不依赖环境,跨平台差,调试麻烦;
解释型:执行慢,依赖解释器,跨平台好,调试方便;
关于Python的安装,此次就不与记录,网络上满是教程;
二、变量
1.什么是变量?
变,即变化,量,即状态。变量就是状态的变化。
2.为什么要有变量呢?
因为世间万物都在变化,因为需求开发程序,程序的执行过程也是在不停的变化,为了保存程序执行时状态的变化,而出现变量这种机制;
3.变量的定义:
变量名 = 变量值 ( = 此符号是赋值符号)
例:
定义一个人的年龄:
age = 18;
其中 age 中的值是可以重新赋值改变的,因为人的年龄是随生长改变的,直到长眠,所以就用到了变量;
4.变量名定义方式:
变量名由英文字母,数字,下划线_,组成
驼峰体:(表达意义词汇的开头大写)
AgeOfOldboy = 46
下划线:(表达意义词汇用_分割)
age_of_oldboy
注意:变量名开头不推荐用数字和下划线
不推荐变量名用中文
不推荐变量名中的词汇意义不明确;
5.定义变量会有id、type、value
id:变量名的id,一串数字
type:变量名的类型
value:变量名的值
注意:== 比较的是值,is比较的是id
两个变量id相同,那么 type和value一定相同;
type和value相同,变量id并不一定相同;
变量id基于在内存开辟空间时系统给与的id,相同的id肯定是同一个空间,同一个空间值必定相同;
而不同内存空间可以有完全相同的值,不同空间的id自然不相同;
6.变量的解压:
1.条语句解压列表内所有的值;
例:
age=[26,15,34,56]
age_1,age_2,age_3,age_4=age
print(age_1)
print(age_2)
print(age_3)
print(age_4)
2.解压列表内部分的值
age=[26,15,34,56,44]
age_1,_,_,_,age_5=age
print(age_1)
print(age_5)
用_下划线代表名,解压你需要的值;
age=[26,15,34,56,44]
age_1,*_,age_5=age
print(age_1)
print(age_5)
用*_代表你不需要的名的集合,解压你需要的值;
7.常量:
不变的量:比如,人死后年龄是不是就变了;
定义方式与变量相同,注意的是,常量变量名必须全部大写,这是开发者之间默认的规定;
例:AGE=84;
三、程序交互:
1.程序交互就是计算机与用户交流,用户向计算机输入数据的机制;
关键字 input
注意:由input输入的值全部是字符串格式;
例:
print('请输入姓名:')
name=input('输入:')
print(name)
2.注释
注释可分单行和多行注释
单行注释:#
多行注释(三对单引号):""" """
注释代码的原则:
1.不需要都加注释,只需要在关键和自己觉得不好理解的部分加注释
2.注释可用中文或英文,但不要用拼音;
文件头:
coding:utf-8
四、基本数据类型
什么是数据,为什么要用多种数据类型?
数据就是变量的值,变量有很多种,名字,年龄啊之类的,你的年龄和名字难道是同一类型吗,用处就在这里;
1.数字:
整型:int
即整数
浮点型:flout
即小数
2.字符串
字符串型:str
各种字符综合,用' '、" "、''' ''' 框起表示;
例:
name='zhoahu' name=''zhanglong'' (单双引号没有任何区别)
注意:''' '''三引号为多行字符
例:
msg='''
窗前明月光,
疑是地上霜。
'''
注意:单引号可以套双引号,双引号可以套单引号,但不能双套双,单套单
例:
msg='你真是个"天才"啊!'
3.列表:
在[]括号内用逗号分隔,里面可以放任意类型无数的值
name=['zhanglong','zhaohu','wangerma',1,4,5]
调用:print(name[3])
输出结果为1,因为列表索引是从0开始的,0对应的是第1个你输入的值,上例,输出索引3,实际输出的是你输入的第4个值;
列表嵌套:
students=['zhanglong ','18',['basketball','musik']]
调用:print(students[2][1])
输出结果为musik
4.字典:
为什么要用字典呢,列表用索引直接输出是因为数据是你输入的,知道索引分别对应的值,让用户调用的的话就完全摸瞎了;
在{}括号内用,分隔,存放多个key:value的值,value的值可以是任意类型;
例:
students={'name':'zhanglong','age':'18'}
调用:print(students['name'])
输出结果为zhanglong,这样用户想要调用,输入姓名就能显示你输入的名字,输入年龄,就能显示你入的年龄
字典的嵌套
例:
students={'name':'zhanglong',
'age':'18],
‘school’:{
'name':'diyizhongxue',
'grade':'3'
}
}
取学校名字调用:print(students[school][name])
输出结果为diyizhongxue
5.布尔
布尔值:一个为ture,一个为false
布尔值用于判断,ture为真,正确的,false为假,错误的;
注意:所有数据类型都自带布尔值,除了0,None,空(如:[],{})为false,其他全部为真;
重点:
可变类型:在id相同情况下(内存空间不变),value可以改变则称为可变类型,如字典,列表等;
不可变类型:value改变,id同时改变时为不可变类型,(上面说过id变意味着开辟了新的内存空间,value改变开辟新的空间,自然是不可变类型);
五、格式化输出:
快捷键:%s,%d
例:
name='zhanglong'
age=18
print('my name %s my age %d' %(name,age))
输出结果为my name zhanglong my age 18
注意:%s 可输入字符串数字类型而%d只能输入数字类型,输入字符串类型就会报错
六、基本运算符:
数学运算符:
+:用于加法运算
-:用于减法运算
*:用于乘法运算
/:用于除法运算
%:取余运算
**:幂运算,次方
//;除法运算取整数
比较运算符:
==:等于
!=:不等于
<>:不等于(不推荐使用)
<:小于
>:大于
<=:小于等于
>=:大于等于
赋值运算:
=:简单的赋值,a=19,就是把19这个值赋予a
+=:加法赋值运算,b+=a,等同于b=b+a;
-=:原理同上
/=:同上
*=:同上
%=:同上
**=:同上
//=:同上
赋值方式补充:
1.链式赋值:
x=1,y=1,z=1; 这种值相同的赋值有跟简单的写法;
x=y=z=1; 结果与上方相同
2.交叉赋值:
m=2;n=1; 想把m的值换到n上,一般是创造第三个变量做介质,现有更简便的方法;
m,n=n,m; 结果成功交换;
逻辑运算:
and:与,q and w 其中只要有一个为假,结果就是假,必须两个都是真结果才是真
or:或,q or w 其中有一个为真,结果就是真,必须全部为假结果才是假
not:非 q not w 当原本结果为真时,运行出来结果就是假,即非真即假,非假即真;
身份运算:
is用于比较id
== 比较的是值
七、流程控制之if....else
关键字:if
elif
else
用于判断。
例1:
a=18,b=20,我们用if判断,a和b哪个大
a=18
b=19
if a>b
print('a比b大')
else
print('b比a大')
输出结果为b比a大,当结果为真时,直接运行if下面的语句,当为假时则跳过if下面的语句,运行else下面的语句
例2:
现在有位女性的数据,我们用计算机判断那个人是不是美女;
age=18
looks='charming'
if age==18:
if looks=='charming':
print('表白')
else:
print('不好意思,认错人了')
输出结果为表白,先判断是不是18岁,不是直接说认错人了,然后再判断漂不漂亮,不漂亮就认错人,漂亮就表白,用的就是if嵌套
例3:
现在有个500ml的杯子,里面有200ml的牛奶,我们用计算机判断它是满杯牛奶,还是中杯、小杯
milk=200;
if milk=500:
print('满杯')
elif milk>=300:
print('中杯')
else:
print('小杯')
结果输出为 小杯。elif在部分情况下可以省略if的嵌套,不需要在if中再嵌套if;
八、流程控制之while循环
循环,意思就是不断的重复,人每天都吃饭,我们总不能写无数个每天吃饭的代码吧,只需要写一个吃饭,然后让它循环就好;
循环关键字 while
else
continue
break
例1:
输出1-10;
n=1;
while n<=10:
print('-',n)
n+=1
输出结果为-1,-2....-10;n<=10为循环判断,如何没有判断它就会一直执行,直到电脑崩溃,加了判断达到要求后会自动停止
例2:
输出1-10的偶数:
n=1
while n<=10:
n+=1;
if n%2!=0:
continue
else:
print('-',n)
结果为 -2,-4...-10,其中我们用if判断变量是不是偶数,不是就用continue 跳过,是就输出,如果用的是break的话,在遇到第一个奇数时,循环就会结束
例3:
循环完提升
n=1;
while n<=10:
print('-',n)
n+=1
else:
print('此次循环以结束')
输出结果为-1,-2...-10,此次循环以结束,else用法,在于循环结束后输出else后的语句。
Python之旅_第一章Python入门的更多相关文章
- 鱼书_第一章_Python入门
Python版本 Python有Python 2.x和Python 3.x两个版本.两个版本不兼容,可能出现用Python 3.x编的代码不能被Python 2.x执行的情况. Python安装 An ...
- [Python笔记][第一章Python基础]
2016/1/27学习内容 第一章 Python基础 Python内置函数 见Python内置函数.md del命令 显式删除操作,列表中也可以使用. 基本输入输出 input() 读入进来永远是字符 ...
- ArcGIS for Desktop入门教程_第一章_引言 - ArcGIS知乎-新一代ArcGIS问答社区
原文:ArcGIS for Desktop入门教程_第一章_引言 - ArcGIS知乎-新一代ArcGIS问答社区 1 引言 1.1 读者定位 我们假设用户在阅读本指南前应已具备以下知识: · 熟悉W ...
- Kettle解决方案: 第一章ETL入门
第一章ETL入门 1.1 OLPT和数据仓库对比 普通的事务系统和商业智能系统(BI)有什么区别? 1个独立的普通事务系统也被称为在线事务处理系统(OLTP) 商业智能系统也常被称为决策支持系统(DS ...
- MySQL----MySQL数据库入门----第一章 数据库入门
第一章 数据库入门 1.1 数据库基础知识 1.1.1 数据库概述 数据不仅包括普通意义上的数字,还包括文字.图像.声音等.也就是说,凡是在计算机中用来描述事物的记录都可称作数据. 数据库的基本特点: ...
- Java Persistence with MyBatis 3(中文版) 第一章 MyBatis入门
本章将涵盖以下话题: ž MyBatis是什么? ž 为什么选择MyBatis? ž MyBatis安装配置 ž 域模型样例 1.1 MyBatis是什么 MyBatis是一个简化和实现了Ja ...
- 第一章 Kubernetes入门
第一章 Kubernetes入门 kubernetes是基于容器技术的分布式架构领先方案,是一个完备的分布式系统支撑平台. kubernetes带来的好处:1)全面拥抱微服务:2)统可以随时随地整体“ ...
- 《python语言程序设计》_第一章编程题
题目1.1 :显示"welcome to python " 答案:print('welcome to python') 题目1.2:显示"welcome to pytho ...
- 第一章 Python 基础
1. 为什么学习 Python? 答题路线:a.python的优点,b.python的应用领域广 具体: 优点 1.python语法非常优雅,简单易学 2.免费开源 3.跨平台,可以自由移植 4.可扩 ...
随机推荐
- caffe简单介绍
从四个层次来理解caffe:Blob.Layer.Net.Solver. 1.BlobBlob是caffe基本的数据结构,用四维矩阵 Batch×Channel×Height×Weight表示,存储了 ...
- java支付宝开发-01-沙箱环境接入
一.沙箱环境说明 (1)蚂蚁沙箱环境(Beta)是协助开发者进行接口功能开发及主要功能联调的辅助环境.沙箱环境模拟了开放平台部分产品的主要功能和主要逻辑(当前沙箱支持产品请参考“沙箱支持产品列表”). ...
- 9.python异常处理
常见异常 AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x FileNotFoundError 输入/输出异常:基本上是无法打开文件 ImportErro ...
- Lintcode360 Sliding Window Median solution 题解
[题目描述] Given an array of n integer, and a moving window(size k), move the window at each iteration f ...
- 使用git工具快速push项目到github(精简)
Dear Weber ,相信有很多刚开始接触前端的程序猿,在刚接触到git工具传项目到github上时会遇到一些问题,那么下面的话呢,我就整理一下一个大致的思路提供给大家参考: 工具:git (自行下 ...
- Ameba读写分离_mycat分库分表_redis缓存
1 数据库的读写分离 1.1 Amoeba实现读写分离 1.1.1 定义 Amoeba是一个以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy 优点: 配置读写分离时较为简单.配置 ...
- python web开发-flask读取txt文件内容
某些情况下,需要读取flask网站要目录下的txt文件.但是直接在flask网站的目录下创建一个文件是无法访问的.从网站找了一些资料,最终发现通过写一个方法返回txt内容比较简单方便,不过此方法适用于 ...
- 金三银四跳槽季,BAT美团滴滴java面试大纲(带答案版)之一:Java基础篇
Java基础篇: 题记:本系列文章,会尽量模拟面试现场对话情景, 用口语而非书面语 ,采用问答形式来展现.另外每一个问题都附上“延伸”,这部分内容是帮助小伙伴们更深的理解一些底层细节的补充,在面试中可 ...
- 笔记:Spring Boot 监控与管理
在微服务架构中,我们将原本庞大的单体系统拆分为多个提供不同服务的应用,虽然,各个应用的内部逻辑因分解而简化,但由于部署的应用数量成倍增长,使得系统的维护复杂度大大提升,为了让运维系统能够获取各个为服务 ...
- Object.defineProperty实现数据绑定
1.Object.defineProperty方法 Object.defineProperty(obj, prop, descriptor); (1)参数: obj:目标对象 prop:需要定义的属 ...