1/75
1认识Python语言
2/75
序言
培训最终的目标是什么?
衡量一个合格的软件工程师的标准是什么?
编码就是技术的全部?
未来的职业方向?
请问你的梦想是什么?
3/75
如何学好编程
编程的目标要明确 目的性要强;
要理清楚思路 条理要明确;
要大胆尝试 try do it
要多犯错 勤犯错
在错误中不断的总结进步
要勤沟通 会沟通
要勇于表达自己的想法
要善于炫耀自己的能力
要多凑热闹 多帮助身边的同学 也许下一个犯错的可能就
是你
4/75
编程三部曲
明确需求--我要解决什么问题?
分析思路--我要怎么做?确定解决问题的步骤;
代码实现--将每个步骤用具体的C#语言代码实现出来;
以上三部曲 每一部都至关重要
难点在于代码实现:如何将自身的思维规则向程序的规则
转化
try-err-try-err-try-err…-try-ok
持之以恒 编码可成
5/75
寻找自己的技术之道
What--该技术是什么,必须知道;
How--该技术怎么使用,必须熟练;
Why--该技术的内部工作原理,可以不了解,但如果了
解,会更有助于对技术的理解和运用;
Where--该技术的特点和适用场景,必须了解;
技术学无止境 唯道恒久
6/75
编程语言
7/75
编程语言的种类和发展
程序设计语言的种类:
机器语言:机器指令,直接执行
汇编语言:符号化,汇编器(Assembler)
高级程序设计语言(编译型)
高级程序设计语言(解释型)
最早大家是用打孔机和汇编编程,效率不高,相信现在还
用这个的程序员很少了
第二代以C,Basic,Pascal等为主,命令式语言,这里C很
特殊
第三代以C++,Delphi等面向对象为主要语言
第四代以C#,Java,这种带垃圾回收,中间指令编译,带
一个庞大运行框架的及运行环境的高大全为主
第五代,就是正在正在流行的,以PHP,JS,Python,
Objective+C,Java等,百花齐放,开放式接口及遵循技术
标准的简单编程语言为主。主要为了解决互联网网站,及
App应用的编程。
从上面的历史,除了C,其它的语言都逐步进入历史
8/75
编程语言的市场份额
Java
C
C++
C#
Python
Object-C/Swift
PHP
JavaScript
Ruby
9/75
10/75
11/75
IEEE Spectrum 杂志(美国电气电子工程师学会出版的旗
舰杂志)发布了2017年度的计算机编程语言排行榜,这也
是他们发布的最新编程语言 Top 榜。据介绍,IEEE
Spectrum 的排序是来自 10 个重要线上数据源的综合,例
如 Google、Twitter、GitHub 等平台,选出了排名前10的编
程语言:
1. Python 从去年开始,Python就借着人工智能的东风,热
度一路船高水涨。Python可以说是一门比较功利的语言,
它不复杂,读和写都非常易于使用,所以才有了“人生苦
短,我用Python”这样的调侃。
12/75
13/75
Python简介
Python 的起源
1989 年的圣诞节期间,吉多·范罗苏姆GuidovanRossum为了在阿姆斯特丹打发时间,决心开发一个新的脚
本解释程序,作为 ABC 语言的一种继承。之所以选中 Python 作为程序的名字,是因为他是 BBC 电视剧
——蒙提·派森的飞行马戏团(Monty Python's Flying Circus)的爱好者。ABC 是由吉多参加设计的一种教
学语言。就吉多本人看来,ABC 这种语言非常优美和强大,是专门为非专业程序员设计的。但是 ABC 语言
并没有成功,究其原因,吉多认为是非开放造成的。吉多决心在 Python 中避免这一错误,并获取了非常
好的效果,完美结合了 C 和其他一些语言。
就这样,Python 在吉多手中诞生了。实际上,第一个实现是在 Mac 机上。可以说,Python 是从 ABC 发展
起来,主要受到了 Modula-3(另一种相当优美且强大的语言,为小型团体所设计的)的影响。并且结合
了 Unix shell 和C 的习惯。目前吉多仍然是 Python 的主要开发者,决定整个 Python 语言的发展方向。
Python 社区经常称呼他是仁慈的独裁者(BDFL),意思是他仍然关注 Python 的开发进程,并在必要的时
刻做出决定。
Python 的设计哲学是“优雅”、“明确”、“简单”。Python 开发者的哲学是“用一种方法,最好是只有一种方法
来做一件事”。在设计 Python 语言时,如果面临多种选择,Python 开发者一般会拒绝花俏的语法,而选择
明确没有或者很少有歧义的语法。这些准则被称为“Python 格言”。
14/75
什么是Python
Python是一门面向对象的编程语言,编译速度超快,从诞
生到现在已经27个年头了。它具有丰富和强大的库,常被
称为“胶水语言”,能够把用其他语言编写的各种模块(尤
其是C/C++)很轻松地联结在一起。其特点在于灵活运
用,因为其拥有大量第三方库,所以开发人员不必重复造
轮子,就像搭积木一样,只要擅于利用这些库就可以完成
绝大部分工作。
Python 是一个高层次的结合了解释性、编译性、互动性和
面向对象的脚本语言。
Python 的设计具有很强的可读性,相比其他语言经常使用
英文关键字,其他语言的一些标点符号,它具有比其他语
言更有特色语法结构。
Python 是一种解释型语言: 这意味着开发过程中没有了
编译这个环节。类似于PHP和Lua语言。
Python 是交互式语言: 这意味着,您可以在一个Python提
示符,直接互动执行写你的程序。
Python 是面向对象语言: 这意味着Python支持面向对象的
风格或代码封装在对象的编程技术。
Python 是初学者的语言:Python 对初级程序员而言,是一
种伟大的语言,它支持广泛的应用程序开发,从简单的文
字处理到 WWW 浏览器再到游戏。
Python的口号:人生苦短,我用python。
为什么这么说?因为Python能提高你的效率,延长你的生
命,让人生不再苦短!作为Python的忠实粉丝,我只想大
声问一句:“还有谁!?”,如果你想用三年的时间达到其
他程序员五年的水平,如果你想用30年的生命活出50岁的
姿态,那么非Python不可!
15/75
16/75
推荐书籍
17/75
安装Python环境
因为Python是跨平台的,它可以运行在Windows、Mac和各
种Linux/Unix系统上。在Windows上写Python程序,放到
Linux上也是能够运行的。要开始学习Python编程,首先就
得把Python安装到你的电脑里。
安装后,你会得到Python解释器(就是负责运行Python程
序的),一个命令行交互环境,还有一个简单的集成开发
环境。
目前,Python有两个版本,一个是2.x版,一个是3.x版,这
两个版本是不兼容的。由于3.x版越来越普及,我们的教程
将以最流行的Python 3.5版本为基础。请确保你的电脑上
安装的Python版本是最流行的3.5.x,这样,你才能无痛
学习环境windows+python3.5
18/75
19/75
第一个Python程序
1.打开记事本,
2.输入代码保存成.py格式(注意修改编码格式utf-8)
3.运行
print('Hello World!')
print('跟于老师学python,so easy。')
20/75
总结
如何学好编程
了解python程序语言
安装Python环境
第一个Python程序
21/75
本章作业
作业一: 运行一个Python程序需要使用___命令(填空)
作业二: 编写一个Python程序,如HelloFriend,当运行时在
cmd窗口输入“python HelloFriend.py”时,会在控制台输
出“张三,你好,欢迎来到Python世界”
作业三: 编写一个Python程序 ,在cmd窗口运行该文件时,
会在控制台输入自己的基本信息.比如:姓名,性别,年龄,毕
业院校,所学专业...等信息
作业四: 编写一个Python程序,在cmd窗口运行该文件时,
会在控制台输出如下图的效果
22/75
2Python语言语法基础
23/75
注释
通过用自己熟悉的语言,在程序中对某些代码进行标注说
明,这就是注释的作用,能够大大增强程序的可读性。
单行注释
多行注释
中文注释 python3不需要,python2需要
平台注释 linux使用
24/75
单行注释
单行注释:
以#开头,#右边的所有东西当做说明,而不是真正要执行
的程序,起辅助说明作用
#我是注释,可以在里写一些功能说明之类的哦
print("Hello World !")
25/75
多行注释
多行注释:
Python 中多行注释使用三个单引号(''')或三个双引号(""")
'''
我是多行注释
可以写很多
很多行的
功能说明
'''
print('Hello World !')
26/75
中文注释
中文注释
从Python3开始,Python默认使用UTF-8编码,所以
Python3.x的源文件不需要特殊声明UTF-8编码。
# -*- coding: UTF-8 -*-
print ("你好,Python");
27/75
平台注释
如果需要使Python程序运行在Windows以外的平台上
(linux),需要在Python文件的最前面加上如下注释说明。
#!/usr/bin/python3
print ('hello world');
#!/usr/bin/python它是用来指定用什么解释器运行脚本以及解释器所在的位置
28/75
标识符
标识符:
就是程序员自己规定的具有特定含义的词.如:类名、
变量名 、函数名等
python中标识符的命名规则:
*.标识符用字母,数字,以及下划线组成
*.标识符不能以数字开头
*.标识符不能使用python关键字
*.标识符没有长度的限制
*.标识符严格区分大小写
标识符的命名规范:
标识符应该做到简洁 知名达意我们目前先使用驼峰
命名法
29/75
30/75
关键字
关键字
有一些专门的词汇,Python语言已经赋予了特定的含义,
只能用于特定的地方。
所以程序员在编写程序时,不能再使用这些词汇来命名标
识符,不能改变这些词汇的含义。
查看关键字:
#导入模块
import keyword
#打印关键字列表
print(keyword.kwlist)
关键字的学习以及使用,咱们会在后面的课程中逐渐进行学习
31/75
变量
变量来源于数学,它的概念基本上和初中代数的方程变量是
一致的,只是在计算机程序中,变量不仅可以是数字,还
可以是其他数据类型。
在计算机编程语言中,变量是指在程序运行期间可以被改变
的量。
在程序中使用变量,必须先创建它并为它取一个名字,并
且指明它能够存储信息的类型,这称为“变量声明”
。
要在程序中声明一个变量,其语法形式如下:
变量类型 变量标识符[=初始值]
由于Python是弱类型语言,所以在Python语言中声明变量不
需要指定变量类型
在python语言中声明变量的语法:
变量标识符=初始值
比如: name=“老王”
32/75
数据类型
数据类型:
一.数字
1.整数
Python可以处理任意大小的整数,当然包括负整
数,在程序中的表示方法和数学上的写法一模一样,例
如:1,100,-8080,0,等等。
计算机由于使用二进制,所以,有时候用十六进制
表示整数比较方便,十六进制用0x前缀和0-9,a-f表示,
例如:0xff00,0xa5b4c3d2,等等。
#定义变量并赋值
age = 10
#打印print(age)
#打印类型
print(type(age))
2.浮点数
浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位
置是可变的,比如,1.23x109和12.3x108是完全相等的。浮点数可以用数学写法,如1.23,3.14,-9.01,
等等。但是对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x109就是1.23e9,
或者12.3e8,0.000012可以写成1.2e-5,等等。
#定义变量并赋值
score = 89.5
#打印
print(score)
#打印类型
print(type(score))
二.字符串
字符串是以单引号'或双引号"括起来的任意文本,比如'abc',"xyz"等等。请注意,''或""本身只是一
种表示方式,不是字符串的一部分,因此,字符串'abc'只有a,b,c这3个字符。如果'本身也是一个字符,
那就可以用""括起来,比如"I'm OK"包含的字符是I,',m,空格,O,K这6个字符。
33/75
#定义变量并赋值
name = 'wang'
#打印
print(name)
#打印类型
print(type(name))
三.布尔值
布尔值和布尔代数的表示完全一致,一个布尔值只有True、False两种值,要么是True,要么是
False,在Python中,可以直接用True、False表示布尔值(请注意大小写),也可以通过布尔运算计算出
来。布尔值可以用and、or和not运算
#定义变量并赋值
flag = True
#打印
print(flag)
#打印类型
print(type(flag))
四.空值
空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一
个特殊的空值。
#定义变量并赋值
flag = None
#打印
print(flag)
#打印类型
print(type(flag))
后续讲解:
五.列表
六.元组
七.字典
34/75
类型转换
类型转换
float() 从一个字符串或整数创建一个新的浮点数(小
数)。
#声明变量
number="12"
#转换为浮点型
newNum=float(number)
#打印结果
print(newNum)
#打印类型
print(type(newNum))
int() 从一个字符串或浮点数创建一个新的整数。
#声明变量
number="12"
#转换为浮点型
newNum=int(number)
#打印结果
print(newNum)
#打印类型
print(type(newNum))
str()从一个数(可以是任何其他类型)创建一个新的字符串。
#声明变量
number=17.2
#转换为浮点型
newNum=str(number)
#打印结果
print(newNum)
#打印类型
print(type(newNum))
bool()从一个数(可以是任何其他类型)创建一个新的
布尔值。
35/75
#声明变量
number="12"
#转换为浮点型
newNum=bool(number)
#打印结果
print(newNum)
#打印类型
print(type(newNum))
36/75
输入和输出
输出
语法:print(内容) 打印输出到控制台
print('刷我滴卡---泰语,你好的意思')
print('呀咩跌---日语,不要的意思')
输入
语法:value = input('请输入:')
name=input('请输入您的名字)
print('您的名字是%s'%(name))
37/75
运算符表达式
运算符的分类:
算术运算符
比较运算符
赋值运算符
位运算符
逻辑运算符
成员操作符
身份操作符
=====================================================================
算数运算符:
=====================================================================
比较运算符,<>python2中使用,Python3不再支持
38/75
=====================================================================
赋值运算符
39/75
=====================================================================
位运算符
40/75
=====================================================================
逻辑运算符
=====================================================================
成员运算符
41/75
=====================================================================
身份运算符
=====================================================================
运算符优先级
42/75
=====================================================================
Python表达式:
使用运算符将运算数据连接起来的符合python语法规
则的式子。
如:x = y + z
43/75
总结
注释的使用
标识符命名规范
变量声明
数据类型
类型转换
输入与输出
运算符与表达式
44/75
本章作业
知识点一
判断以下哪些不能作为标识符
A、a
B、¥a
C、_12
D、$a@12
E、false
F、False
知识点二:
运用目前学习过知识,将数值123.5678四舍五入保留两
位小数(提示:运算符的使用)
必做任务:
任务1:
模仿Hello world案例,写一个方法向控制台输出字符
串"Hello Python"。
任务2:
在你的方法中定义变量,用这些变量存储游戏中一个敌人
应该有的一些属性(比如用户名,等级,经验值,血量,
魔法值等),定义尽可能多的变量。
任务3:
提示用户输入籍贯,当用户输入籍贯后,向用户显示"欢迎
您来到某某" ,某某是用户输入的籍贯地。
任务4:
编写一个控制台应用程序,要求用户输入4个int值,并显
示他们的乘积。
任务5:
让用户分别输入姓名,语文,数学,英语 三门课的成绩,
然后给用户显示:XX,你的总成绩为XX分,平均成绩为XX
分。
任务6:
编写一个程序,输入梯形的上底 下底 和高 ,计算出来梯
45/75
形的面积并显示出来。
梯形的面积=(上底+下底)*高 /2
任务7:
编程实现计算指定的天数(如46天)是几周零几天。
用户输入的天数
x/7 --- 周数 x%7----几天
任务8:
接受用户输入的两个整数,存储到两个变量里面,交换变
量存储的值。
1.临时变量
2.求和法
3.异或法
可选任务:
任务9:
输入两个数,分别代表年份和月份,计算这个月的天数
(可选)。
注:闰年的 2 月有 29 天;能被 4 整除同时不能被 100 整
除即为闰年;如果能被 400 整除的是闰年,除此两种条
件,其他都是非闰年。
任务10:
从键盘输入一个三位的正整数,把百分位十分位个位数字
的相反顺序输出。
思考题:
如何为大小写混杂的字符串排序?
例如: CabD=>abCD;
46/75
3Python流程控制语句
了解程序的三种基本控制结构-顺序结构、选择(分支)结构、循环结构;
掌握选择结构的各种语法(if/if-else/if-else if/);
掌握循环结构的各种语法(while/do-while/for)。
47/75
程序三种结构
程序三种结构
1. 顺序结构
2. 选择结构
3. 循环结构
48/75
选择分支语句
程序设计时,经常需要使用选择结构在程序中完成逻辑判
断和选这就需要使用到选择语句。
Python中的选择语句包括
• if语句
• if-else语句
选择语句用来控制选择结构,对选择条件进行判断,并根
据判断结果选择要执行的程序语句,改变程序执行流程。
================================================================================
如果某些条件满足,才能做某件事情,而不满足时不允许
做,这就是所谓的判断选择
================================================================================
if语句
语法:
if 条件表达式:
语句块
49/75
================================================================================
if-else双分支选择语句
语法:
if 条件表达式:
语句块
else:
语句块
50/75
================================================================================
if-elif多分支选择语句
if 条件表达式1: #如果条件表达式1成立(结
果为True)
语句块1 #就执行语句块1中的代码
elif 条件表达式2: #否则,如果条件表达式2
成立
语句块2 #就执行语句块2中的代码
elif 条件表达式3: #如果条件表达式3成
立
语句块3 #就执行语句块n-1中的代
码
51/75
...
elif 条件表达式n-1: #如果条件表达式n-1成
立
语句块n-1 #就执行语句块n-1中的
代码
else: #如果以上所有的条件都
不成立
语句块n #就执行语句块n
================================================================================
猜拳游戏:
使用判断语句,完成石头剪刀布的猜拳游戏。
52/75
53/75
选择分支语句专题作业
1.让用户输入一个月份,判断这个月是哪个季节?假定3到
4月是春季,5到8月是夏季,9到10是秋季,11、12、1、2
月是冬季。
2.让用户输入小强的语文、数学和英语成绩,输出以下判
断是否正确,正确输出true,错误输出false
a.语文、英语和数学成绩都大于85分;
b.语文、英语和数学至少有一门大于95分;
c.语文和英语至少有一门大于90分且数学不低于80分。
3.使用分支语句完成一个简单的计算器程序,用户输入两
个数字,用四则运算符计算结果并显示在控制台上。
4.请用户输入两次,每次输入一个数字,如果用户输入的
第一个数大就输出第一个数,如果用户输入的第二个数大
就输出第二个数。
5.请用户输入一个字符串,根据这个字符串的长度得出如
下结果:
s = "1234"; 字符串的长度:len(s)
长度:0-56之间: 输出:短消息
长度:57-128之间: 输出:一般消息
长度:129-192之间: 输出:长消息
长度:193-256之间: 输出:超长消息
长度:其他情况:长度超过可发送上限
6.随机产生一个0-5之间的数:
随机产生的数:0:输出:进入战斗
随机产生的数:1:输出:捡到宝箱
随机产生的数:2:输出:捡到武器
随机产生的数:3:输出:捡到弹药
随机产生的数:4:输出:踩到陷阱
随机产生的数:5:输出:无事件
7.老师问学生,这道题你会做了吗?如果学生答"会了(y)",则
可以放学.如果学生不会做(n),则老师再讲一遍
8.提示用户输入年龄,如果大于等于18,则告知用户可以
54/75
查看,如果小于10岁,则告知不允许查看,如果大于等于
10岁并且小于18,则提示用户是否继续查看(yes、
no),如果输入的是yes则提示用户请查看,否则提示"退
出,你放弃查看"
。
9.请用户输入自身的血压值(高压和低压) 请依据下面标
准血压 判断出用户的血压是否正常 若正常 显示血压正常
否则显示用户血压不正常
标准:成人:收缩压:90-140mmHg 舒张压:
60-90mmHg
10.某商店T恤的价格为35元/件(2件9折,3件以上8折),
裤子的价格为120元/条(2条以上9折).小明在该店买了3
件T恤和2条裤子,请计算并显示小明应该付多少钱?
55/75
循环语句
一般情况下,需要多次重复执行的代码,都可以用循环的
方式来完成循环不是必须要使用的,但是为了提高代码的
重复使用率,所以有经验的开发者都会采用循环。
================================================================================
While 循环语句
语法:
while 布尔表达式:
循环语句
56/75
示例:
已知银行一年期整存整取的储蓄年利率为4.14%,在利率
保持不变的情况下,经过多少年后,1000元存款能增值到
2000元以上?
================================================================================
While循环语句嵌套
语法:
while 布尔表达式1:
循环语句
while 布尔表达式2:
循环语句
....
================================================================================
1、案例1:
打印图形
*
* *
57/75
* * *
* * * *
* * * * *
2、案例2
打印九九乘法表
58/75
流程跳转语句
1. break可以用来结束整个循环。
2. continue可以结束本次循环,进入下一次循环。
注意:
1. break/continue只能用在循环中,除此以外不能单独使
用。
2. break/continue在嵌套循环中,只对最近的一层循环起作
用。
示例:
计算并输出100以内的所有素数(质数)。
素数:按照素数的定义,除了1和它自身以外,不能被其
它数整除的数即为素数。
59/75
总结
选择语句是为了有条件的执行代码,
循环语句是为了重复执行相同的代码。
多层循环的使用技巧。
break和continue的作用。
60/75
本章作业
任务1:
让用户输入小茗的语文和数学成绩,输出以下判断是否正
确,正确输出true,错误输出false
a、小茗的语文和数学成绩都大于90分;
b、语文和数学有一门是大于90分的。
任务2:
要求用户输入两个数a、b,如果 a 被 b 整除或者a加b大于
100,则输出a的值,否则输出 b 的值。
任务3:
让用户输入学员的成绩,然后输出学员的结业考试成绩评
测结果。
成绩 >=90 : A
90> 成绩 >=80 : B
80> 成绩 >=70 : C
70> 成绩 >=60 : D
成绩 <60 : E
任务4:
提示用户输入用户名,然后再提示输入密码,如果用户名
是“admin”并且密码是“88888”,则提示正确,否则,如果
用户名不是admin还提示用户用户名不存在,如果用户名是
admin则提示密码错误。
任务5:
提示用户输入用户名,然后再提示输入密码,如果用户名
是“admin”并且密码是“88888”,则提示正确,否则,提示
用户“用户名或者密码错误”,但如果错误达到3次,则提示
用户"您的账户已被冻结",退出程序。
61/75
任务6:
求1-100间的所有奇数和。
任务7:
求1-100间的所有能被3整除的数的和。
任务8:
编程实现如下图列出的图形。
*
***
*****
*******
可选任务:
任务9:
让用户输入一个数显示下面内容。
*******
******
*****
****
***
**
*
任务10:
编程实现如下图列出的图形。
*
***
*****
*******
任务11:
编程实现如下图列出的图形。
*
***
62/75
*****
*******
*****
***
*
任务12:
鸡兔同笼,从上面看有35个头,从下面看有94只脚,请问
鸡有几只,兔有几只?
任务13:
玩家进来以后要买筹码;
在每次掷骰子前,
要下注(50~手里剩余的筹码);
接着要选择买大小;
程序要模仿掷骰子,产生一个1~6的随机数
根据掷骰子的结果,判断玩家的输赢,改变玩家的手里
的筹码
如果买大,4~6是赢,1~3是输
如果小,1~3是赢,4~6是输
如果赢了,玩家的筹码+=下注金额
如果输了,玩家的筹码-=下注金额
提示玩家是否要退出游戏
玩家手里的筹码小于最小下注金额,要强制玩家退出
注意 :先理清楚思路,从宏观上考虑流程,不要考虑每个
步骤的细节。流程搞清楚以后,再琢磨每个步骤的细节。
然后写代码。
选做:
1.一个自然数与3的和是5的倍数,与3的差是6的倍数,这个
自然数最小是几?
2.在400--500之间求一个数,它被2除余1,被5除余3,被9除余
1,这个数是多少?
63/75
3.有一些四位数,百位数字都是3,十位数字都是6,并且它们
既能被2整除,又能被3整除,求这样的四位数中最大的和最
小的两数各是几?
4.编程求一个四位自然数ABCD,它乘以A后变成DCBA
5.编程求出满足以下条件的三位数:它除以11所得的商等于
它各位数字之和.
6.某数被80除所得的商,不但是7的倍数,而且用2,3,4,5,6去
除余数都是1,求这 个自然数.
7.有一种最简真分数,它们的分子与分母的乘积都是140,把
所有这样的真分数从小到大打印出来
8.一个五位数,若在它的后面写上一个7,得到一个六位数A,
若在它前面写上一个7,得到一个六位数B,B是A的五倍,求此
五位数.
9.把123456789这个数乘以一个什么数,能使它的结果不但
不含零,而且仍然是 由1,2,3,4,5,6,7,8,9这九个数字组成的,
只是顺序不同而已.
10.验证:任意一个大于9的整数减去它的各位数字之和所得
的差,一定能被9整除.
11.今有四个人,他们得年龄各不相同,他们年龄总和是129,
而其中有三个人的年龄是平方数,若倒退15年,这四人中仍
有三个人的年龄是平方数,求他们各自的年龄
12.如果两个素数之差为2,这样的两个素数就叫作"孪生数",
找出100以内的所有"孪生数".
64/75
4字符串
字符串介绍
字符串编码
字符串定义
字符串下标
格式化
转义字符
运算符
常见操作
65/75
字符串定义
字符串是程序中非常常见的类型
================================================================================
字符串声明:
双引号或者单引号中的数据,就是字符串
例如:
str='abc'
str2="abc"
66/75
字符串下标访问:
字符串可以通过访问下标访问单个字符
例如:
str="abcdef"
str2=str[3] #索引下标从零开始,最大值为长
度-1
67/75
字符串格式化
字符串格式化:
str="天气不错"
num=15.685
print("你的字符串为%s,数字为%0.2f"%(str,num))
68/75
转义字符和运算符
在需要在字符中使用特殊字符时,python用反斜杠(\)转义
字符。
字符串运算符
69/75
字符串操作
常见操作-查找
string.find(str, beg=0, end=len(string))
检测 str 是否包含在 string 中,如果 beg 和 end 指
定范围,则检查是否包含在指定范围内,如果是返回开始
的索引值,否则返回-1
string.rfind(str, beg=0, end=len(string))
类似于 find()函数,不过是从右边开始查找.
string.index(str, beg=0, end=len(string))
类似于 find()函数,但是找不到报异常.
string.rindex(str, beg=0, end=len(string))
类似于 rfind()函数,但是找不到报异常.
常见操作-统计
string.count(str, beg=0, end=len(string))
检测 str 是否包含在 string 中出现的次数,如果
beg 和 end 指定范围,则检查是否包含在指定范围内
常见操作-分割
string.split(str="", num=string.count(str))
以 str 为分隔符切片 string,如果 num有指定值,
则仅分隔 num 个子字符串
string.splitlines([keepends])
按照行('\r', '\r\n', \n')分隔,返回一个包含各行作
为元素的列表,如果参数 keepends 为 False,不包含换行
符,如果为 True,则保留换行符。
string.partition(str)
有点像 find()和 split()的结合体,从 str 出现的第一
个位置起,把 字 符 串 string 分 成 一 个 3 元 素 的 元 组
(string_pre_str,str,string_post_str),如果 string 中不包含str
则 string_pre_str == string.
70/75
string.rpartition(str)
类似于 partition()函数,不过是从右边开始.
常见操作-判断
string.startswith(obj, beg=0,end=len(string))
检查字符串是否是以 obj 开头,是则返回 True,否
则返回 False。如果beg 和 end 指定值,则在指定范围内检
查.
string.endswith(obj, beg=0,end=len(string))
检查字符串是否是以 obj 结尾,是则返回 True,否
则返回 False。如果beg 和 end 指定值,则在指定范围内检
查.
string.isalnum() 所有字符都是字母或数字则
返回 True,否则返回 False
string.isalpha() 所有字符都是字母则返回
True,否则返回 False
string.isdigit() 所有字符都是数字则返回 True,
否则返回 False
string.isupper() 所有字符都是大写则返回
True,否则返回 False
string.islower() 所有字符都是小写则返回
True,否则返回 False
string.isspace() 只包含空格则返回 True,否
则返回 False
常见操作-大小写
string.capitalize()
把字符串的第一个字符大写
string.upper()
转换 string 中的小写字母为大写
string.lower()
71/75
转换 string 中的大写字母为小写
常见操作-对齐
string.ljust(width)
返回一个原字符串左对齐,并使用空格填充至长度
width 的新字符串
string.rjust(width)
返回一个原字符串右对齐,并使用空格填充至长度
width 的新字符串
string.center(width)
返回一个原字符串居中,并使用空格填充至长度
width 的新字符串
常见操作-裁剪
string.strip([obj])
删除 string 字符串前后的的obj,如果不传参数,
删除前后空格
string.lstrip([obj])
删除 string 字符串左面的obj,如果不传参数,删
除左面空格
string.rstrip([obj])
删除 string 字符串右面的obj,如果不传参数,删
除右面空格
常见操作-合并
string.join(seq)
以 string 作为分隔符,将 seq 中所有的元素(的字
符串表示)合并为一个新的字符串
72/75
常见操作-编码解码
string.encode(encoding='UTF-8', errors='strict')
以 encoding 指定的编码格式编码 string,如果出
错默认报一个ValueError 的异常,除非 errors 指定的
是'ignore'或者'replace'
bytes.decode(encoding='UTF-8', errors='strict')
以 encoding 指定的编码格式解码 string,如果出
错默认报一个 ValueError 的 异 常 , 除 非 errors 指 定 的
是 'ignore' 或 者'replace'
73/75
总结
了解字符串类
字符串在项目中出现频繁
关于字符串的操作要灵活掌握
74/75
本章作业
1.去掉字符串中的所有空格
2.根据完整的路径从路径中分离文件路径、文件名及扩展
名
3.获取字符串中汉字的个数
4.对字符串进行加密与解密
5.将字母全部转换为大写或小写
6.根据标点符号对字符串进行分行
7.去掉字符串数组中每个字符串的空格
8.随意输入你心中想到的一个书名,然后输出它的字符串
长度。 (len()属性:可以得字符串的长度)
9.两个学员输入各自最喜欢的游戏名称,判断是否一致,如
果相等,则输出你们俩喜欢相同的游戏;如果不相同,则输
出你们俩喜欢不相同的游戏。
10.上题中两位同学输入 lol和 LOL代表同一游戏,怎么办?
11.让用户输入一个日期格式如“2008/08/08”,将 输入的日
期格式转换为“2008年-8月-8日”
。
12.接收用户输入的字符串,将其中的字符进行排序(升
序),并以逆序的顺序输
出,“cabed”→"abcde"→“edcba”。
13.接收用户输入的一句英文,将其中的单词以反序输
出,“hello c sharp”→“sharp c hello”。
14.从请求地址中提取出用户名和域名
http://www.163.com?userName=admin&pwd=123456
15.有个字符串数组,存储了10个书名,书名有长有短,现
在将他们统一处理,若书名长度大于10,则截取长度8的
子串并且最后添加“...”,加一个竖线后输出作者的名字。
16.让用户输入一句话,找出所有"呵"的位置。
17.让用户输入一句话,找出所有"呵呵"的位置。
18.让用户输入一句话,判断这句话中有没有邪恶,如果有邪
恶就替换成这种形式然后输出,如:“老牛很邪恶”,输出后变
成”老牛很**”;
75/75
19.如何判断一个字符串是否为另一个字符串的子串
20.如何验证一个字符串中的每一个字符均在另一个字符串
中出现过
21.如何随机生成无数字的全字母的字符串
22.如何随机生成带数字和字母的字符串
23.如何判定一个字符串中既有数字又有字母
24.字符串内的字符排序(只按字母序不论大小写)
25.字符串的补位操作
1 =》001
2 =》002
10=》010