python初认识
CPU、内存、硬盘以及操作系统之间的关系
CPU:中央处理器,计算机的逻辑运算单元
硬盘:长期存储数据的地方,断电不会丢失
内存:位于CPU与硬盘之间,缓解高速CPU与低速硬盘之间的矛盾
内存与硬盘的区别
(1)内存读取速度快,硬盘读取速度慢
(2)内存价格昂贵,硬盘价格便宜
(3)内存中的数据断电会丢失,硬盘断电后不会丢失
程序的运行过程
当我们点击程序图标时,操作系统将程序加载到内存里,然后CPU从内存里读取指令并执行,典型的过程如下图:
python是一门什么样的语言?
编程语言分类
编程语言主要从以下几个角度分类:编译型与解释型,静态语言与动态语言,强类型定义语言与弱类型定义语言。
编译型语言与解释型语言的区别
编译型语言:需通过编译器将源程序编译成机器码,一般需经过编译(compile)和链接(link)两个过程。
编译是将源程序转换成机器码,链接是将各个模块的机器码和依赖库串联起来生成可执行文件;
优点是编译只需要一次,运行时不需要编译,因而执行效率高,且可以脱离语言环境独立存在;
缺点是编译之后如果需要修改就需要对整个模块重新编译;编译的时候根据对应的生产环境生成不同的机器码,不同操作系统之间移植就会有问题;
代表语言有C,C++,Go,Pascal,objective-C,swift等
解释型语言:没有编译环节,只在运行程序时逐行解释,逐行运行。
优点:一是平台兼容性好,在任何环境中都能运行,当然前提是安装了虚拟机(解释器),二是灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护;缺点是执行效率低(注意只是执行效率,解释型语言的编写效率是很高的)
代表语言有Javascript,Python,Ruby,PHP,Perl,Erlang。
补充:还有一类混合型语言,如Java和C#
静态语言与动态语言的区别
动态语言:运行时结构可以改变的语言,例如新的函数,对象甚至代码可以被引进已有的函数可以被删除或是其他结构上的变化。通俗点说就是在运行时代码可以根据某些条件改变自身结构。
主要有:Object-C、C#、JavaScript、PHP、Python、Erlang。
静态语言:与动态语言相反,运行时结构不能改变的语言
主要有:Java、C、C++
这里要分清静态语言和静态类型语言,动态语言和动态类型语言,动态类型语言是指在运行期间才去做数据类型检查的语言,说的是数据类型;动态语言是指运行时可以改变结构,说的是结构。
动态类型语言的数据类型不是在编译阶段决定的,而是把类型绑定延后到了运行阶段,主要语言:Python、Ruby、Erlang、JavaScript、swift、PHP、Perl。
静态语言的数据类型是在编译期间(或运行之前)确定的,编写代码的时候要明确确定变量的数据类型。主要语言:C、C++、C#、Java、Object-C。
基础数据类型
python里有int,str,bool几种数据类型
1. int
int为整型,在python2中int表示的范围:-2**31~2**31-1;在python3里几乎可以表示任意整数
2. str
str为字符串,运算方法有+,*
3. bool
bool为布尔值,表示真假两种状态,True和False
流程控制语句if
1. 两分支执行
if 控制语句:
执行语句
else :
执行语句
代码示例:
1 age = int(input("请输入年龄:"))2 if age >= 18:3 print("可以愉快地去网吧啦~")4 else:5 print("小屁孩,再等几年吧")
运行结果:
请输入年龄:18可以愉快地去网吧啦~Process finished with exit code 0
请输入年龄:2小屁孩,再等几年吧
Process finished with exit code 0
2. 多分支执行
if 控制语句:
执行语句
elif 控制语句:
执行语句
elif 控制语句:
执行语句
... # 可以输入多个elif语句
else 控制语句:
执行语句
1 age = int(input("请输入年龄:"))2 if age >= 18:3 print("可以愉快地去网吧啦~")4 elif age >0:5 print("小屁孩,再等几年吧")6 else:7 print("输入年龄错误,年龄应该为正整数!")
运行结果:
请输入年龄:19可以愉快地去网吧啦~Process finished with exit code 0
请输入年龄:-3输入年龄错误,年龄应该为正整数!
Process finished with exit code 0
3. if 语句嵌套
if 控制语句 :
执行语句
else:
if 控制语句:
执行语句
else:
执行语句
1 age = input("请输入年龄:")2 if notage.isdigit():3 print("年龄应该为数字!")4 else:5 age =int(age)6 if age >= 18:7 print("可以愉快地去网吧啦~")8 elif age >0:9 print("小屁孩,再等几年吧")10 else:11 print("年龄不能为0!")
运行结果:
请输入年龄:哈哈哈
年龄应该为数字!
Process finished with exit code 0
请输入年龄:abc
年龄应该为数字!
Process finished with exit code 0
请输入年龄:88可以愉快地去网吧啦~Process finished with exit code 0
请输入年龄:8小屁孩,再等几年吧
Process finished with exit code 0
请输入年龄:0
年龄不能为0!
Process finished with exit code 0