第一章 Python程序语言简介
第一节 Python概述
1. 什么是Python
Python是一种 解释型、面向对象、动态数据类型 的高级程序设计语言。由Guido van Rossum与1989年发明,第一个公开发行版本发行于1991年。像Perl语言一样,Python源代码同样遵循GPL(GNU General Public Licence)协议。
2. 简介
1.Python是一种解释型语言:开发过程中没有了编译这个环节,类似于PHP和Perl语言;
2.Python是一种交互式语言:可以在一个Python提示符,直接互动执行程序;
3.Python是面向对象语言:Python支持面向对象的风格或代码封装在对象的编程技术;
4.Python是初学者的语言:支持广泛的应用程序开发,从简单的文字处理到WWW浏览器再到游戏
3. 发展历史
Python是由Guido van Rossum在20世纪八十年代末九十年代初,在荷兰国家数学和计算机科学研究所设计出来的。Python本身是由诸多其他语言发展而来的,其中包括:ABC、Modula-3、C、C++、Algol-68、SmallTalk、Unix
shell和其他的脚本语言等。目前Python是由一个核心开发团队在维护,Guido van Rossum仍占据着至关重要的作用,指导其进展。
4. Python的特点
1. Python的优点
1.易于学习:它具有相对较少的关键字,结构简单,和一个明确的语法;
2.易于阅读:代码定义更加清晰;
3.易于维护:Python的成功在于它的源码是相当容易维护的;
4.一个广泛的标准库:具有丰富的库,跨平台,在UNIX、Windows和Macintosh兼容很好;
5.互动模式:互动模式的支持,可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片段;
6.可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台;
7.可扩展:如果需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C/C++完成那部分的程序,然后从你的Python程序中调用;
8.数据库:Python提供所有主要的商业数据的接口;
9.GUI编程:Python支持GUI可以创建和移植到许多系统调用;
10.可嵌入:可以将Python嵌入到C/C++程序中,让用户获得“脚本化”的能力;
2. Python的缺点
1.运行速度慢:和C程序相比Python程序非常慢,因为Python是解释型语言,代码在执行时会一行一行地翻译成CPU能理解的机器语言,翻译过程非常耗时间,而C语言之间把所有代码编译成CPU可以理解的机器语言;
2.代码不能加密:如果要发布Python程序,实际上就是发布源代码,而C语言不用发布源代码,只需把编译后的机器语言(也就是windows系统上常见的xxx.exe文件)发布出去。要从机器码反推出C代码是不可能的,所以编译型语言都没有这个问题,但解释型语言都必须把源代码发布出去。
第二节 数据的存储
计算机的原始作用就是“存储数据”和“计算数据”,但是数据存储在哪?数据存储在内存里。但是数据又是怎么存储在内存里的呢?其实内存中存储的都是二进制数据,比如(10)10=(1010)2,其实抽象起来就是,一个具有两种状态的开关表示“一位”,开和关用0和1表示,把八个开关放在同一个房间里,这个房间称为“一个字节”,则每个房间的门牌号就可以看作是“存储地址”,把无数个房间堆叠起来组成一个摩天大厦,则这个摩天大厦就是“内存”。
1. 数据存储:计算机存储数据,先开辟内存空间,再存储数据。计算机开辟内存的最小单位是字节。在存储数据时,用最高位表示“符号”,其中1表示“负数”,0表示“正数”,详细可参考《计算机组成原理》课程,或自行百度。
第三节 Python程序的编辑模式
- 交互模式:在命令行编辑一行运行一行
- 命令行模式:运用编辑工具编辑代码,并以“.py”作为后缀名,然后打开命令行>C:(转到C盘)–>dir(查看当前目录下的所有文件)–>cd Desktop–>python XXX.py(执行文件)
第四节 Python的数据类型
1.具体数据类型
- None(空):
- Number(数字):
- 整数:Python可以处理任意大小的整数,当然也包括负整数,在程序中的表示和数学的写法一样;
- 浮点数(小数):浮点数由整数部分和小数部分组成,在运算的过程中可能会有“四舍五入”的误差
- 复数:由实部(由a表示)和虚部(由b表示)构成,a+bi,其种“i”表示虚数单位
# 比较两个数的大小
a1 = 100
a2 = 9
print((a1>a2)-(a1<a2))
# 返回1,因为a1>a2=true=1,a1<a2=false=0,所以1-0 = 1
print(abs(a1)) #求a1的绝对值
print(max(1,2,3,4,5,6)) #求出数列中的最大值
print(min(1,2,3,4,5,6)) #求出数列中的最小值
print(pow(2, 6)) #求出2的5次方:2^5
print(round(3.35, 2)) #浮点数 保留2位小数的四舍五入 import math #导入 数学 库
print(math.ceil(121.34)) #向上取整 122
print(math.floor(121.34)) #向下取整 121 print(math.modf(23.15)) #返回整数部分和小数部分 (小数部分-浮点型, 整数部分-浮点型) print(math.sqrt(16)) #返回4 开平方 #随机数
import random
print(random.chioce([1,5,9,3,8,7,6])) #从这些数中随机选取一个数,序列中,可以有字符串等其他类型的数据
print(random.chioce(range(5))) #表示从“0,1,2,3,4”中任选一个数
print(random.choice("hello world!")) #"hello world!"=['h','e','l','l','o',' ','w','o','r','l','d','!']
print(random.randrange(1, 100, 2)) #randrange([start,] stop[, step]) 生成1~100的奇数,[]内的表示可有可无,start默认为0,step默认为1
print(random.random()) #随机产生一个[0,1)的浮点数,不能传值
print(random.uniform(3,9)) #随机生成一个[3,9]之间的实数
- String(字符串):
- Boolean(布尔):
- List(列表):
list = [1,2,3,4,5]
random.shuffle(list) #将列表随机排序
print(list) #
- Turple(元组):
- Dict(字典):
- Set(集合):
2.标识符
- 定义:一串具有特殊规则的字符串
- 规则:
- 只能由数字、字母、下划线组成;
- 开头不能是数字;
- 不能是Python的关键字
# 查看关键字
import keyword
print(keyword.kwlist)
- 区分大小写
- 见名知意
- 起名遵循驼峰原则
- 作用:给变量、函数等命名
- 注意:在Python3中,非ASCII标识符也是允许的
3.变量和常量
1. 变量:
- 概述:
- 程序可操作的存储空间的名称;
- 程序运行期间能改变的数据;
- 每个变量特有的类型。
- 作用:将不同类型的数据存储到内存;
- 定义变量方式:变量名 = 初始值(为了确定变量的类型);
- 数据的存储:变量名 = 数据值,注意:在变量使用之前必须先定义,否则会报错;
- 删除变量:del 变量名,注意变量删除后,变量将不能再引用(相当于没有定义该变量);
# 交互式定义变量
num1, num2 = 36, 48
2. 常量:程序运行期间不能改变的数据
第五节 运算符和基本语句
表达式:由变量、常量和运算符组成的式子
阅读表达式:功能(进行相关符号的运算,不会改变变量的值)、值(运算结果)
1. 运算符
- 算术运算符:+、-、*、/、%(取余,模)、**(求幂)、//(整除-取整)、++(自增)、- -(自减)
- 关系运算符:==、!=、>、<、>=、<=
- 赋值运算符:=
- 格式:变量 = 表达式
- 功能:计算了“=”右侧表达式的值,并赋值给左侧
4. 复合赋值运算符:+=、-=、*=、/=、%=、**=、//=
5. 位运算符:把其他进制的数转换为二进制进行位运算的运算符,其中包括:
- &(按位与:两者为1,才为1,否则为0);
- |(按位或:两者为0,才为0,否则为1);
- ^(按位异或,两者相同为0,不同为1);
- ~(按位非:取反);
- <<n(左移运算符):二进制数的各位,都向左移动n为,移出的高位舍弃,空白的低位补0
- >>n(右移运算符):二进制数的各位,都向右移动n为,移出的低位舍弃,空白的高位补0
6. 逻辑运算符:and(逻辑与:全都为真才为真)、or(逻辑或:全都为假才为假)、not(逻辑非:取反);逻辑运算符有短路原则,比如说逻辑与,当确定一个为假,则全部为假
7.成员运算符:in(如果在指定的序列中找到值返回True,否则返回False)、not in(如果在指定的序列中没有找到值返回True,否则返回False)
8.身份运算符:is(判断两个标识符是不是引用同一个对象)、is not(判断两个标识符是不是引用不同的一个对象)
运算符的优先级:**(求幂); ~、+(正号)、-(负号); *、/、%、//; +(加)、-(减); >>、<<; &、|、^(异或); <=、<、>、>=; ==、!=、=、%=、+=、-=、//=;is、is not、in、not in、not、 or 、and
# 运用逻辑运算符,实现从控制台输入一个年份,判断是否是闰年
# 普通闰年:能被4整除但不能被100整除的年份为普通闰年。
# 世纪闰年:能被400整除的为世纪闰年。
year = int(input("请输入年份:")) if year % 4 ==0 and year % 100 !=0:
print(year,"是普通闰年!")
elif year % 400 == 0:
print(year,"是世纪闰年!")
else:
print(year,"是平年!")
2. if条件语句
当程序执行到 if 语句时,首先计算“表达式”的值,值为真,执行 if 下的语句;值为假,执行else下的语句,如果没有else,跳出 if 语句,继续执行下面语句。
# if条件语句的格式
if 表达式:
执行语句/pass(占行符,什么也不执行)
else if 表达式:
执行语句/pass(占行符,什么也不执行)
else:
执行语句/pass(占行符,什么也不执行)
何为真假:假:0、0.0、’’(空)、None、False等,除此之外为真
# 从控制台中输入一个三位数,判断,如果该数为“水仙花数(如:153=1^3+5^3+3^3)”,就打印输出“是水仙花数”,否则打印“非水仙花数”
sh = int(input("请输入一个三位数:"))
a = sh // 100 #百位
b = sh % 100 //10 #十位
c = sh % 100 % 10 #个位
# print(a, b, c)
res = a**3+b**3+c**3
if res == sh:
print("该数是水仙花数", res, "=", a, "^3+", b, "^3+", c, "^3")
else:
print("该数非水仙花数", res, "!=", a, "^3+", b, "^3+", c, "^3")
# 从控制台中输入一个5位数,判断,如果该数为“回文数(如:12321)”,就打印输出“是回文数”,否则打印“非回文数”
hui = int(input("请输入一个五位数:"))
a = hui // 10000 #万位
b = hui % 10000 // 1000 #千位
c = hui % 10000 % 1000 // 100 #百位
d = hui % 10000 % 1000 % 100 // 10 #十位
e = hui % 10000 % 1000 % 100 % 10 #个位
if a == e:
if b == d:
print("该数是回文数:", hui)
else:
print("该数非回文数:", hui)
第一章 Python程序语言简介的更多相关文章
- 《自学C语言》第一章:C语言简介
这一章主要介绍什么是C语言,以及它的产生.发展历史.如其中所说的计算机术语有不懂的请百度,例如什么是强类型,什么是高级语言. 1.C语言是什么? 答:C语言是一门通用计算机编程语言,应用广泛.C语言的 ...
- 【学习笔记】第一章 python安全开发简介
1.1为什么黑客喜欢用python? python为我们提供了非常完善的基础代码库,覆盖了网络.文件.GUI.数据库.文本等大量内容,被形象的称为“”内置电池“”,用python开发,许多功能不必从零 ...
- 《Java从入门到失业》第一章:计算机基础知识(三):程序语言简介
1.3程序语言简介 我们经常会听到一些名词:低级语言.高级语言.编译型.解释型.面向过程.面向对象等.这些到底是啥意思呢?在正式进入Java世界前,笔者也尝试简单的聊一聊这块东西. 1.3.1低级语言 ...
- C语言编程入门之--第一章初识程序
第一章 初识程序 导读:计算机程序无时不刻的影响着人类的生活,现代社会已经离不开程序,程序的作用如此巨大,那么程序到底是什么呢?本章主要讨论程序的概念,唤起读者对程序的兴趣,同时对C语言程序与其它语言 ...
- 第一章、PyQt的简介、安装与配置
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 第一章.PyQt的简介.安装与配置 一.引言 当朋友向我推荐PyQt时,老猿才知道有这样一个在Pyt ...
- 第一章 初始C语言
第一章 初始C语言 目录 第一章 初始C语言 1. C语言起源 2. 选择C语言的理由 2.1 设计特性 2.2 高效性 2.3 可移植性 2.4 强大而灵活 2.5 面向程序员 3. C语言的应用范 ...
- 第一章ASP.NET SignalR简介
第一章ASP.NET SignalR简介 1.1概述: ASP.NET SignalR是微软新开发的类库,为的是帮助ASP.NET开发人员很方便地开发实时网络功能. SignalR允许服务器端和客户端 ...
- 核心系统命令实战 第一章Linux命令行简介
第一章Linux命令行简介 1.1 Linux命令行概述 1.1.1 Linux 命令行的开启和退出 开启:登陆账号密码进入系统 退出:exit/logout 快捷键:Ctrl+d 1.1.2 Li ...
- Java 学习笔记 第一章:Java语言开发环境搭建
第一章:Java语言开发环境搭建 第二章:常量.变量和数据类型 第三章:数据类型转换.运算符和方法入门 1.Java虚拟机——JVM JVM(Java Virtual Machine ):Java虚拟 ...
随机推荐
- JSON.stringify 语法实例讲解+easyui data-options属性+expires【申明:来源于网络】
JSON.stringify 语法实例讲解+easyui data-options属性+expires[申明:来源于网络] JSON.stringify 语法实例讲解:http://www.jb51. ...
- ALM 中查看某个 test 的更改 history 历史
ALM 中要查看某个 test 更改历史, 需要下面两个表: AUDIT_LOG and AUDIT_PROPERTIES ------- Get Test modification history ...
- luarocks 包管理工具
安装方式:wget http://luarocks.org/releases/luarocks-2.2.2.tar.gz tar zxvf luarocks-2.2.2.tar.gz cd luaro ...
- Install VirtualBox Guest Additions for elementary os
Pls refer to: Install VirtualBox Guest Additions for elementary os
- Html转义字符列表
Symbol Code Entity Name ™ ™ € € Space ! ! " " " # # $ $ % % & & ...
- USACO Section 1.3 题解 (洛谷OJ P1209 P1444 P3650 P2693)
usaco ch1.4 sort(d , d + c, [](int a, int b) -> bool { return a > b; }); 生成与过滤 generator&& ...
- 阿里云Ubuntu 18.04安装图形界面
#!/bin/bash #更新软件库 apt-get update #升级软件 apt-get upgrade #安装ubuntu桌面系统 apt-get install ubuntu-desktop
- TCP断开那些事
继上一篇后,我们再来看一下四次挥手的过程 这里其实没有必要过多阐述,一张图胜过千言万语. 与三次握手一样,四次挥手的过程中也有许多扩展问题. 当然问的最多的还是:为什么要四次握手?为什么要等待2MSL ...
- com.alibaba.druid.pool.DruidDataSource : {dataSource-2} init error
这几天准备写一个项目,其中的整合druid的时候,发现出现了下面这个错误.找了好久都没有找到.网上的各种解决方法都不对. 2018-11-07 16:26:28.940 INFO 19684 --- ...
- JAVA学习笔记 (okHttp3的用法)
最近的项目中有个接口是返回文件流数据,根据我们这边一个验签的插件,我发现里面有okHttpClient提供了Call.Factory,所以就学习了下okHttp3的用法. 1.概述 okhttp是一个 ...