第一节 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程序的编辑模式

  1. 交互模式:在命令行编辑一行运行一行
  2. 命令行模式:运用编辑工具编辑代码,并以“.py”作为后缀名,然后打开命令行>C:(转到C盘)–>dir(查看当前目录下的所有文件)–>cd Desktop–>python XXX.py(执行文件)

第四节 Python的数据类型

1.具体数据类型

  1. None(空):
  2. 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]之间的实数
  1. String(字符串):
  2. Boolean(布尔):
  3. List(列表):
 list = [1,2,3,4,5]
random.shuffle(list) #将列表随机排序
print(list) #
  1. Turple(元组):
  2. Dict(字典):
  3. Set(集合):

2.标识符

  1. 定义:一串具有特殊规则的字符串
  2. 规则:
  • 只能由数字、字母、下划线组成;
  • 开头不能是数字;
  • 不能是Python的关键字
 # 查看关键字
import keyword
print(keyword.kwlist)
  • 区分大小写
  • 见名知意
  • 起名遵循驼峰原则
  1. 作用:给变量、函数等命名
  2. 注意:在Python3中,非ASCII标识符也是允许的

3.变量和常量

1. 变量:

  1. 概述:
  • 程序可操作的存储空间的名称;
  • 程序运行期间能改变的数据;
  • 每个变量特有的类型。
  1. 作用:将不同类型的数据存储到内存;
  2. 定义变量方式:变量名 = 初始值(为了确定变量的类型)
  3. 数据的存储:变量名 = 数据值,注意:在变量使用之前必须先定义,否则会报错;
  4. 删除变量:del 变量名,注意变量删除后,变量将不能再引用(相当于没有定义该变量);
 # 交互式定义变量
num1, num2 = 36, 48

2. 常量:程序运行期间不能改变的数据

第五节 运算符和基本语句

表达式:由变量、常量和运算符组成的式子
阅读表达式:功能(进行相关符号的运算,不会改变变量的值)、值(运算结果)

1. 运算符

  1. 算术运算符:+、-、*、/、%(取余,模)、**(求幂)、//(整除-取整)、++(自增)、- -(自减)
  2. 关系运算符:==、!=、>、<、>=、<=
  3. 赋值运算符:=
  • 格式:变量 = 表达式
  • 功能:计算了“=”右侧表达式的值,并赋值给左侧

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程序语言简介的更多相关文章

  1. 《自学C语言》第一章:C语言简介

    这一章主要介绍什么是C语言,以及它的产生.发展历史.如其中所说的计算机术语有不懂的请百度,例如什么是强类型,什么是高级语言. 1.C语言是什么? 答:C语言是一门通用计算机编程语言,应用广泛.C语言的 ...

  2. 【学习笔记】第一章 python安全开发简介

    1.1为什么黑客喜欢用python? python为我们提供了非常完善的基础代码库,覆盖了网络.文件.GUI.数据库.文本等大量内容,被形象的称为“”内置电池“”,用python开发,许多功能不必从零 ...

  3. 《Java从入门到失业》第一章:计算机基础知识(三):程序语言简介

    1.3程序语言简介 我们经常会听到一些名词:低级语言.高级语言.编译型.解释型.面向过程.面向对象等.这些到底是啥意思呢?在正式进入Java世界前,笔者也尝试简单的聊一聊这块东西. 1.3.1低级语言 ...

  4. C语言编程入门之--第一章初识程序

    第一章 初识程序 导读:计算机程序无时不刻的影响着人类的生活,现代社会已经离不开程序,程序的作用如此巨大,那么程序到底是什么呢?本章主要讨论程序的概念,唤起读者对程序的兴趣,同时对C语言程序与其它语言 ...

  5. 第一章、PyQt的简介、安装与配置

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 第一章.PyQt的简介.安装与配置 一.引言 当朋友向我推荐PyQt时,老猿才知道有这样一个在Pyt ...

  6. 第一章 初始C语言

    第一章 初始C语言 目录 第一章 初始C语言 1. C语言起源 2. 选择C语言的理由 2.1 设计特性 2.2 高效性 2.3 可移植性 2.4 强大而灵活 2.5 面向程序员 3. C语言的应用范 ...

  7. 第一章ASP.NET SignalR简介

    第一章ASP.NET SignalR简介 1.1概述: ASP.NET SignalR是微软新开发的类库,为的是帮助ASP.NET开发人员很方便地开发实时网络功能. SignalR允许服务器端和客户端 ...

  8. 核心系统命令实战 第一章Linux命令行简介

    第一章Linux命令行简介 1.1 Linux命令行概述 1.1.1 Linux 命令行的开启和退出 开启:登陆账号密码进入系统 退出:exit/logout  快捷键:Ctrl+d 1.1.2 Li ...

  9. Java 学习笔记 第一章:Java语言开发环境搭建

    第一章:Java语言开发环境搭建 第二章:常量.变量和数据类型 第三章:数据类型转换.运算符和方法入门 1.Java虚拟机——JVM JVM(Java Virtual Machine ):Java虚拟 ...

随机推荐

  1. PAT甲级1078 Hashing【hash】

    题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805389634158592 题意: 给定哈希表的大小和n个数,使用 ...

  2. 2019OO第一单元总结

    第一次作业 (你没看错,就一个类...) 通过正则表达式处理输入的字符串,提取出每一项的系数和指数,在输出的时候,应当考虑到合并同类项和正项提前的问题,使得最终的输出最短. 我第一次作业的代码超级难看 ...

  3. 字符串转xml,特殊字符的问题

    字符串转xml,如果字符串包含&,< 等特殊符号,转成xml 需要特殊处理,否则XML解析会出错. String uuid = UUID.randomUUID().toString(). ...

  4. [ionic3.x开发记录]ios下页面过渡效果不出现的小坑

    如果内容没有被<ion-content></ion-content>或者<ion-header></ion-header>标签包裹,页面过渡的时候是没有 ...

  5. jeecg富文本编辑器增加字体(仿宋)

    jeecg富文本编辑器增加字体(仿宋) 温馨提示:jeecg 提供了 uedit 富文本的实现,如下针对的是 uedit 增加仿宋字体示例. 主要修改三个文件:plug-in\ueditor\uedi ...

  6. BeautifulSoup库的使用

    1.简介 BeautifulSoup库也是一个HTML/XML的解析器,其使用起来很简单,但是其实解析网站用xpath和re已经足矣,这个库其实很少用到.因为其占用内存资源还是比xpath更高. '' ...

  7. struts 2.5配置

    1.jar包的变动 必需jar包,旧版本: 必需jar包,新版本: 在struts-2.5.16版本的lib目录下没有xwork-core的jar包,原因是被合并到struts-core这个jar里了 ...

  8. 在centos7 上安装Python3

    Centos7缺省是python2.7. 现在需要使Python2和python3 共存,所以需要单独安装python3. 但是需要注意的是如果按缺省方式安装,则会替换python为python3.x ...

  9. windows 下面make的使用示例

    ---恢复内容开始--- 前面已经安装了windows下面的编译器g++和mingw32-make,下面就make做个示例说明 1.文档结构 |--src       |--comm          ...

  10. C#设计模式(13)——代理模式(Proxy Pattern)(转)

    一.引言 在软件开发过程中,有些对象有时候会由于网络或其他的障碍,以至于不能够或者不能直接访问到这些对象,如果直接访问对象给系统带来不必要的复杂性,这时候可以在客户端和目标对象之间增加一层中间层,让代 ...