内容正文:
《python语言基础》
《数据与计算》第三章
10101000101010010110
10101000110
什么是python?
Python语言
python
1989年,为了打发圣诞节假期,Guidio van Rossum吉多· 范罗苏姆(龟叔)决心开发一个新的解释程序(Python雏形)
1991年,第一个Python解释器诞生
Python这个名字,来自龟叔所挚爱的电视剧Monty Python's Flying Circus
Python的起源
闲着没事的程序员是有多虎?
python特点
简洁
开源
可读性强
标准脚本语言
编程环境
使用Python语言编程解决问题时,需要严格遵守Python语言的语法规则,并选择合理的程序运行环境运行程序。
编程环境
集成开发环境
Integrated Development Environment
简 称
如何进入IDE界面呢?
点击开始菜单中的“IDLE (Python3.7 64-bit)”,就进入了Python编程语言的“IDLE交互式编程环境”。“IDLE交互式编程环境”启动后的界面,如左图所示。
编程环境
解释器操作界面
DLE是开发Python程序的基本IDE。打开IDLE,会出现交互式解释器Python Shell,如右图所示,可以通过它在IDLE内部执行Python命令,也可以在Python Shell的提示符“>>>”后输入任意的语句、表达式或者一小段代码进行测试。
编程环境
在Python Shell中直接输入:print(4 +13),按回车键后,就可以得到 4和13相加的结 果:17。
在Python Shell中输入:print("你好Python,我是欢欢!"),按回车键后,将显示“你好Python,我是欢欢!”。
编程环境
编辑器操作界面
IDLE还带有一个编辑器,如右图所示,可以用来编辑Python程序。
通过Python Shell菜单:“File”—“New File”,打开编辑器,输入相应的Python程序。
编程环境
通过编辑器菜单:“Run”—“Run Module”,运行程序。程序运行时,在解释器Python Shell的交互界面中输入相应数据,可得到如下结果:
>>>
请输入整数a :4
请输入整数b :13
17
在代码编程环境中运行代码
代码执行的结果
数据类型
故事中出现了_____种动物,是__________________。
小猴子摘了_____个玉米;
摘了_____个桃子;
摘了_____个西瓜。
在观看视频的同时,请思考以下几个问题:
2
1
3
1
小猴子,小兔子
1个玉米
3个桃子
1个西瓜
数据类型
1个玉米
3个桃子
1个西瓜
“小猴子在下山过程中,它先掰了1个玉米,接着摘了3个桃子,后来又抱了1个西瓜,最后又去追1只小兔子……”
在这个情境中出现的1个玉米、3个桃子、1个西瓜、1只小猴子、1只小兔子,可以按照什么标准进行分类呢?
※在Python中,对1、2、“桃子”、“玉
米”、“西瓜”、“小猴子”、“小兔子”
可以怎样进行分类呢?
※可以怎样用程序表示小猴子下山过程中拿到
的东西呢?
水果 动物
1个玉米
3个桃子
1个西瓜 1只小猴子
1只小兔子
数量1个 数量多个
1个玉米
1个西瓜
1只小猴子
1只小兔子 3个桃子
数据类型
数据类型 类型标识符 类型说明及示例
整型 int 数学中的整数, 如2, -99,0
十六进制数(用0x前缀),如0x2f
实型 float 数学中的实数,如3.14、-6.01、
用科学计数法表示的实数,如2.318e-6
字符串型 str 用单引号或双引号或三引号表示,
'Hello, world!'、"中国"、 '520'、'''X'''
布尔型 bool 只有两种值:True和False
Python常见数据类型
数据类型
现实事物或现象 列举的数据 数据类型
倒计时数字 10
体重 51.5
名字 “小明”
表达式5<2 False
整型int
实型float
字符串型str
布尔型bool
算术运算符
运算符 表达式 示例 优先级
** x ** y
* x * y
/ x / y
// x // y
% x % y
+ x + y
- x - y
幂运算,5 ** 2 结果25
乘法, 5 * 2结果10
x除以y后产生实数值,5 / 2结果2.5
x除以y后取整数部分, 5 // 2结果2
x除以y后取余数,5 % 2结果1
加法, 5 + 2结果7
减法, 5 - 2结果3
1
2
2
2
2
3
3
算术运算符-优先级
最先计算 **(乘幂)
其次计算 * 、/ 、//(除后取整)、%(取余)
最后计算 + 、-
在同一个表达式中,先执行优先级高的运算,同优先级的基本运算按照自左向右的顺序执行。
123-123//100*100//2**2
98
python语言表达式
√
×
用python语言表达式表示
((b**2)-4*a*c)**0.5/(2*a)
把代数式用python语言表达式表示
2 * a / b + c 2 * a / ( b + c )
关系运算符
关系运算符 表达式 示例
> a>b 5>2结果为True
< a<b 5<2结果为False
>= a>=b 5>=2结果为True
<= a<=b 5<=2结果为False
== a==b 5==2结果为False
!= a!=b 5!=2结果为True
in a in b a是b的成员
关系运算的结果是一个布尔值
“in”是成员资格运算符,用来检查一个值是否包含在指定序列中
关系运算符-案例
关系运算符-课堂练习
运行下列代码,输出的结果是( )
A. Ture False
B. false true
C. False True
D. True False
D
表达式3*3==3**2结果是____________
True
逻辑运算符
逻辑运算符
运算符 描述 表达式 示例
not 非 not x not False 结果为True
and 与 x and y True and False 结果为False
or 或 x or y True or False 结果为True
优先级为是 not>and>or
and:都为True时,结果才为True,有一个False结果为False
or: 都为False时,结果才为False,有一个True结果为True
逻辑运算符-课堂练习
2<6 or 4>6 结果为 __
2<6 and 4>6 结果为 __
not(4>6) 结果为 __
not False or True and False 结果为 __
False
True
True
True
课堂小结
括号的运算级别最高
运算符的优先级:
算术运算符>关系运算符>逻辑运算符
课堂练习
a=8、b=6、c=5、d=3,表达式
a==c and b!=c or c>d 的值是( )
A.1
B.True
C.False
D.2
B
课堂练习
1. Python表达式 23//3+12%5**2 的运算结果是( )
A.9 B.9.66666 C.11 D.19
2. 运行下列代码,输出结果是( )
a='信息技术'
print(a*2)
A.信信息息技技术术 B.信息技术信息技术
C.信息技术*2 D.信息技术2
D
B
课堂练习
有一个四位整数 x=1234,想表示出千位,百位,十位和个位的表达式是什么?
q= x // 1000 (千位)
b= x // 100 % 10(百位)
g= x % 10 (个位)
s= x // 10 % 10 (十位)
变量
常量的值在程序执行过程中不会改变
变量是指在程序运行过程中可以改变的量,在程序进行中,新的值会覆盖原有值,变量用来存储未知或可变的数据。如a=123,a是变量,存储值123
变量
变量名命名规则:
变量名由字母(包含汉字)、数字、下划线(_)组成,只能以字母或 _ 开头,不能以数字开头。
变量名不能和Python保留字相同,比如 print、input
变量名区分大小写。如 SUM ≠ sum ≠ Sum
变量名既要简短又要具有描述性,即“见名知意”。
变量-课堂练习
_count1
HelloWorld
ans?1
姓名
print
3ans
赋值
给变量赋值使用“=”符号,“=”左边是变量名,右边是变量值。
变量名 = 表达式
例如:
n=1
n=n+1#一个变量可以在赋值运算符两边同时使用, n+1的结果赋值给n。
n+=1#等同于n=n+ 1
类似的赋值运算符还有“-=”“*=”“/=”和“%=”等。
赋值
赋值方法 含义
x=2 将数值2赋值给变量x
x,y=1,2 将数值1赋值给变量x,数值2赋值给变量y
x=y=z=1 将数值1分别赋值给变量x,y,z
x+=1 与x=x+1等价
赋值-课堂练习
某Python程序如下:
a=3
b=a
a+=1
print(a,b)
程序运行后,输出的结果是( )
A 3 3 B 1 3
C 4 3 D 4 7
C
《python语言基础》
《数据与计算》第三章第三节
10101000101010010110
10101000110
字符串-定义
定义:用单引号(’ )、双引号(” )或三引号(”’ )括起来的一个字符序列。
示例字符串:s=“hello”、a=‘班级’
特点:
①是不可变数据,一旦创建了一个字符串,这个字符串的内容是不可改变的。
②可以通过索引来访问字符串中的字符。
字符串-索引
正索引:从左往右,从0开始逐一递增
负索引:从右往左,从-1开始逐一递减
字符 H e l l o , P y t h o n
正索引 0 1 2 3 4 5 6 7 8 9 10 11
负索引 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1
字符串“Hello,Python”索引标号
索引:所在位置
字符串-访问
访问字符串的某个元素: 字符串名[索引号]
s[0]
字符串名
索引下标
s[-12]
s[6]
s[4]
s[-4]
字符 H e l l o , P y t h o n
正索引 0 1 2 3 4 5 6 7 8 9 10 11
负索引 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1
字符串-切片
读取字符串中连续或不连续的多个字符该如何操作?
字符串-切片
切片:序列的某个子区域
格式:字符串名[开始位置:结束位置:步长]
开始位置表示开始索引值
结束位置表示结束索引值(结束位置处取不到)
步长表示步长默认为1(可以不写,从左向右取字符串s步长为正数,从右向左取字符串步长为负数)
开始位置不写时默认从第一个字符开始
结束位置不写时默认获取到最后一个字符
开始位置和结束位置都不写默认获取所有字符
字符串-切片
字符串“Hello,Python”索引标号
字符 H e l l o , P y t h o n
正索引 0 1 2 3 4 5 6 7 8 9 10 11
负索引 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1
s[1:4]= s[:3]=
s[1:4:2]= s[1:]=
s[-2:-5:-1]= s[:]=
s[1:-1]= s[::-1]=
切片-练习
a=“python 是一种语言”
①a[5]= ⑥a[:6:2]= ⑪a[4:0:-1]=
②a[-2]= ⑦a[1:]= ⑫a[-1:-5:-2]=
③a[0:4]= ⑧a[-2:]=
④a[1:10:2]= ⑨a[:-6]=
⑤a[::2]= ⑩a[::-1]=
字符 p y t h o n 是 一 种 语 言
正索引 0 1 2 3 4 5 6 7 8 9 10
负索引 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2
列表
定义:由0个或多个元素组成的序列,所有元素放在一对中括号“[]”中,并使用逗号隔开。
示例列表:
s=[“hello”,‘班级’,8]
特点:
①列表的大小是可变的,可以增加或删除列表内的元素。
②列表是可变数据,列表内的元素可以修改。
③列表内的元素也可以通过索引或切片进行访问。
列表-索引
正索引:从左往右,从0开始逐一递增
负索引:从右往左,从-1开始逐一递减
索引:所在位置
列表info=[“bh123”,“苹果”,8,“元”]索引
元素 “bh123” “苹果” 8 “元”
正索引 0 1 2 3
负索引 -4 -3 -2 -1
列表-访问
访问列表中的某个元素: 列表名[索引号]
字符 bh123 苹果 8 元
正索引 0 1 2 3
负索引 -4 -3 -2 -1
info[0]
info[-3]
info[2]
info[-1]
列表-切片
切片:序列的某个子区域
格式:列表名[开始位置:结束位置:步长]
开始位置表示开始索引值
结束位置表示结束索引值(结束位置处取不到)
步长表示步长默认为1(可以不写,从左向右取字符串s步长为正数,从右向左取字符串步长为负数)
开始位置不写时默认从第一个字符开始
结束位置不写时默认获取到最后一个字符
开始位置和结束位置都不写默认获取所有字符
切片的结果:数据结构是列表
列表-切片
字符 bh123 苹果 8 元
正索引 0 1 2 3
负索引 -4 -3 -2 -1
info[1:3]
info[-1:1:-1]
info[::2]
info[:-2]
列表-修改
修改列表中原有元素
列表名[索引]=新元素
如inf0[1]=”桃子”
示例列表:
inf0=[“bh123”,”苹果”,8,”元”]
inf0=[“bh123”,”桃子”,8,”元”]
列表-修改
方法 说明
列表名.append(元素) 添加新的元素在列表末尾
列表名.count(元素) 统计该元素在列表中出现的次数
列表名.insert(索引, 元素) 将元素插入列表
列表名.pop(索引) 移除列表中的一个元素,并且返回该元素的值;默认删除最后一个
列表名.remove(元素) 移除列表中的第一个匹配某个值的元素
列表名.reverse() 将列表中元素反向
列表名.sort() 对列表进行排序
列表名.index(元素) 从列表中找出某个值第一个匹配元素的索引位置
del 列表名[索引] 删除列表中索引号位置元素
列表-练习
D
C
C
内置函数-输入和输出
使用print()函数输出
格式:print(输出内容)
在Python中,如果想要一次输出多个内容,可以将要输出的内容使用英文半角的逗号分隔。
内置函数-输入和输出
使用input()函数输入
在Python中,使用内置函数input()可以接收用户的键盘输入。
input()函数的基本用法如下:
variable = input(“提示文字”)
保存输入结果的变量
用于提示要输入的内容的
数据类型转换
input():用来接收用户的键盘输入,返回的结果是字符串。必要的时候可以使用内置函数int()对用户输入的内容进行类型转换。
数据类型转换
t = int(input(“提示文字”))
在Python中,无论输入的是数字还是字符都将被作为字符串读取。如果想要接收数值,需要把接收到的字符串进行类型转换。
数据类型转换
int(): 用来将其他形式的数字转换为整数,参数可以为整数、实数、或合法的数字字符串。
float():用来将其他类型数据转换为实数
str():直接将其任意类型参数转换为字符串。
内置函数
内置函数(BIF,built-in functions)是Python内置对象类型之一,不需要额外导入任何模块即可直接使用
基本输入输出:input( )、print( )
数据类型转换: int( )、float( )、str( )
字符与ASCII码之间的转换:chr( )、ord( )
与运算有关的:sum( )、abs( )、len( )、round( )、max( )、min( )
内置函数
chr(x)返回x对应的字符
ord(x)返回x对应的ASCII值
内置函数
round(x[,n]) 对x进行四舍五入(如果给定n,就将数x转换为小数点后有n位的数)
内置函数
max( )返回序列的最大值,min( )返回序列的最小值
内置函数
len( )返回序列的长度
abs( )返回绝对值
内置函数
sum( )对数据进行求和
内建函数-课堂练习
函数 运行结果
int(-8.999)
int('520')
float('78')
str(56.0)
len('ab 5.6')
max([2,3,5])
min('a','bw','bcd')
abs(-86)
round(4.676,2)
chr(97)
ord('A')
-8
520
78.0
''56.0''
6
5
'a'
86
4.68
'a'
65
基础python表达式
输入变量a和变量b的值,并且a和b的值为整型
将变量a的值赋值给变量c
将变量b的值赋值给变量a
将变量c的值赋值给变量b
输出变量a和变量b的值
控制结构
顺序结构
语句1
语句2
语句3
循环结构
N
Y
语句块1
语句块2
条件表达式?
分支结构
N
Y
语句块1
语句块2
条件表达式?
顺序结构
·定义
顺序结构就是让程序按照自上而下的顺序依次执行每一条 Python 代码,不重复执行任何代码,也不跳过任何代码。
例如:
a = 3
a += 2
print( a )
输出结果:
5
顺序结构-交换两个变量的值
开始
c←a
a←b
b←c
输出a、b
结束
输入a,b的值
a=int(input("请输入整数a的值:"))
b=int(input("请输入整数b的值:"))
c=a #把a的值赋值给c
a=b #把b的值赋值给a
b=c #把c的值赋值给b
print("a=",a)
print("b=",b)
“#”后面的内容为注释,用于对代码的说明。程序运行时不执行。
顺序结构-交换两个变量的值
a=int(input("请输入整数a的值:"))
b=int(input("请输入整数b的值:"))
c=a
a=b
b=c
print("a=",a)
print("b=",b)
a,b=b,a
两个变量的值互换可不借助第三个变量直接进行
分支结构-单分支
语句块
True
False
表达式
if 语句表示分支结构,一个if语句就是一个分支结构
if 条件表达式:
语句块
条件为真(True)时执行语句块
条件为假(False)时不执行任何语句
单分支结构语句的一般格式
分支结构-例题
例:判断考试是否通过
输入某学生技术考试成绩(0—100),判断是否通过考试。60分及以上则通过考试,输出“及格”,其余则不输出。
score=int(input(“请输入考试成绩:”))
print(“及格”)
分支结构-双分支结构
if—else 语句
if 条件表达式:
语句块1
else:
语句块2
表达式
True
条件为真(True)时执行语句块1
条件为假(False)时执行语句块2
if-else语句的一般格式
语句块1
语句块2
分支结构-例题
输入某学生技术考试成绩(0—100),判断是否通过考试。60分及以上则通过考试,输出“及格”,60分以下输出不及格。
score=int(input(“输入成绩:”))
print(“及格”)
print(“不及格”)
分支结构-注意事项
只要某一行以冒号结尾,它接下来的内容就应该有缩进。4个空格
分支结构-注意事项
取反:如果原条件为False时就执行操作
条件表达式可以是关系表达式,也可以是逻辑表达式。
所有学科及格
平均分高于80分
用户名错误
密码错误
天气not阴天
and
or
not
只有当两个条件都为True时才执行操作
只要任何一个条件为True时就执行操作。
分支结构-例题
输入一个整数,如果该数既是3的倍数又是7的倍数则输出ok
n = int(input("请输入整数:"))
if n % 3 == 0 and n % 7 == 0:
print("ok")
分支结构-例题
“区间测速”问题
所谓区间测速,是在同一路段上布设两个监测点,基于车辆通过前后两个监测点的时间来计算车辆在该路段上的平均行驶速度,并依据该路段上的限速标准判定车辆是否超速。
现有一段长为25千米的测速区间,小车的限速是100千米/小时。数据中心需要编写一 段程序,用来判断某辆小车在此测速路段是否超速。
分支结构-例题
s 区间距离(千米)
t 用时(秒)
v 平均车速(千米/时)
整型
整型
实型
分支结构-例题
t =int(input("请输入用时(秒):"))
s = 25
v = s *3600/ t
if v <= 100:
print("正常")
else:
print("超速")
s 区间距离(千米)
t 用时(秒)
v 平均车速(千米/时)
请输入用时(秒):900
正常
请输入用时(秒):800
超速
分支结构-例题
语句块的缩进:
行尾冒号的作用是要创建一个新的语句块。
只要某一行以冒号结尾,它接下来的内容和就应该有缩进(4个空格)。
分支结构-课堂例题
a=91
if a>=60:
print(“棒!”)
else:
print(“继续加油!”)
输出结果为______
分支结构-课堂例题
a,b=16,3
if a%b==0:
c=a/b
else:
c=a//b
print(c)
输出结果为______
分支结构-复习
单分支结构
双分支结构
if 条件表达式:
语句块
if 条件表达式:
语句块1
else:
语句块2
分支结构-多分支
if elif else 语句
if 条件表达式1 :
语句块1
elif 条件表达式2 :
语句块2
else :
语句块3
多分支结构语句的一般格式
分支结构-多分支
if elif else 语句
if 条件表达式1 :
代码块1
elif 条件表达式2 :
代码块2
.......
else :
代码块3
特性:
一个if语句可以包含多个elif子句
只要某个条件为真,计算机就会执行其所对应的语句块,然后就退出该语句
分支结构-例题
输入某学生技术考试成绩(0~100),输出对应等级。
[90,100] A
[75,90) B
[60,75) C
[0,60) D
分支结构-多分支
score=int(input(“输入成绩:”))
print(“A”)
print(“B”)
print(“C”)
print(“D”)
分支结构-课堂例题
伊春金山鹿苑旅游景点规定,身高在1.2米以下的儿童免票,身高在1.2~1.5米(包括1.2米和1.5米)的儿童购买半价票,身高超过1.5米的游客购买全价票。用python程序实现上述算法。
h=float(input(“请输入身高h”))
print(“免费票“)
print(”半价票“)
print(”全价票“)
分支结构-课堂例题
当cj值为85,执行下面分支语句时,判断的条件有( )
A. 仅判断② B. 判断①和②
C. 判断②和③ D. ①、②、③均会判断
if cj>=90 : #①
dj=“A等”
elif cj>=80 : #②
dj=“B等”
elif cj>=60 : #③
dj=“C等”
else:
dj=“E等”
分支结构-多分支
2. 下面选项中,语句的功能与其它三个选项不一样的是( )
循环结构-循环
循环结构是在给定条件成立时,反复执行某程序段,直到条件不成立为止。其中,给定的条件称为循环条件,反复执行的程序段叫做循环体。
· 循环结构的算法流程图
循环条件满足?
循环体
否
是
注意
循环结构的重复执行是在条件控制下的一种可控的重复
当需要重复处理的条件不满足时,重复处理必须能及时结束——符合算法的有穷性
循环结构-例题
小明出门忘记拿书,他家的门是密码门,要输入密码才能进去,密码正确才能进入,密码不正确再重新输入,直到输入成功为止。
成功解锁
开始
输入设定密码为a
输入密码b
结束
是
否
a=b?
循环结构-for循环
for 循环:一般用来进行遍历,次数循环
使用场景:当你知道要循环多少次,或者要处理一个清单时使用
for 就像一个点名册他会把列表里的东西一个一个拿出来处理,直到拿完为止
示例代码
s=[“张三”,“赵四”,“王五”]
for name in s:
print(name,“到”)
运行结果
循环结构-for循环
for循环语句是通过遍历某一序列对象来构建循环,循环结束的条件是对象遍历完成。
for循环语句一般格式:
for 变量 in 序列:
循环体
for 循环也可称为for in 循环
缩进表示代码的从属关系
循环体
循环变量每次从序列里面按顺序取一值并执行循环体,直到序列里的所有数取完,循环结束
循环结构-代码示例
变量
序列
循环体
循环结构-range函数
range函数
格式:range( start, end , steps )
start:起始值(可以不写(不写时默认从0开始));
end:终值(取不到)
steps:步长(默认1,可省略)
功能:创建一个整数列表
例如:range(5)→[0,1,2,3,4],也可以表示为range(0,5)
range(1,10,2)→[1,3,5,7,9],即表示从1~9的所有奇数
在for循环中,当序列遍历完后,序列的长度就是for循环语句执行的次数
循环结构-for循环和range函数
固定次数循环
#循环5次
for i in range(5):
print(i)
指定范围循环
#从1到10
for i in range(1,11):
print(i)
带步长的循环
#1到10之间的奇数
for i in range(1,11,2):
print(i)
#10到1的递减
for i in range(10,0,-1):
print(i)
循环结构-例题
“西汉初年,韩信率兵出征,带精锐千人,战败,卒约一两百人,韩信不知数,遂点兵,3人一排,多2人,5人一排,多4人,7人一排,多6人,问剩余多少兵?”(5min)
for i in :
if :
print("剩余士兵数为:", i)
循环结构-例题
“西汉初年,韩信率兵出征,带精锐千人,战败,卒约一两百人,韩信不知数,遂点兵,3人一排,多2人,5人一排,多4人,7人一排,多6人,问剩余多少兵?”(5min)
循环结构-例题
“西汉初年,韩信率兵出征,带精锐千人,战败,卒约一两百人,韩信不知数,遂点兵,3人一排,多2人,5人一排,多4人,7人一排,多6人,问剩余多少兵?”
1000人
战死士兵有100~200人,即剩余800~900人
range(0,1000)
循环结构-课堂例题
x=0
for i in range(1,9,2):
x=x+i
print(x)
有如上程序段,输出结果为 1
循环结构-课堂例题
s=0
for i in range(1,6):
s+=i
print(s,i)
有如上程序段,输出结果为 1
循环结构-课堂例题
计算1-100的和,将下列代码补充完整
sum=0
for i in :
print(sum)1
循环结构
for 变量 in 序列:
循环体
for 循环也可称为for in 循环
缩进表示代码的从属关系
循环体
循环变量每次从序列里面按顺序取一值并执行循环体,直到序列里的所有数取完,循环结束
循环结构
循环和分支的一般格式:
for 变量 in 序列:
语句块
if 条件表达式:
语句块
for 变量 in 序列:
语句块
if 条件表达式:
语句块
else:
语句块
for 变量 in 序列:
语句块
if 条件表达式:
语句块
elif 条件表达式:
语句块
...
循环结构-例题
p="Tel-114"
c=""
for ch in p:
if "0"<=ch<="9":
c+=str(9-int(ch))
elif "a"<=ch<="z":
c+=chr(ord(ch)-ord("a")+ord("A"))
else:
c+=ch
print(c)
程序运行后,输出的结果是
循环结构-例题
a=input("请输入数字字符串:")
s=''
flag=1
for i in range(0,len(a)-1,2):
d1=int(a[i])
d2=int(a[i+1])
t=d1+flag*d2
if t<0:
t+=10
elif t>=10:
t-=10
s=str(s)+s
flag=-flag
if len(a)%2==1:
s+=a[len(a)-1]
print(s)
程序运行时,若输入“48135”,则输出的结果是
循环结构-循环嵌套
循环嵌套:在循环体内嵌入了其他循环体的结构称之为循环嵌套。循环嵌套首先执行外循环,外循环每执行一次,内循环需要进行一个完整的循环
循环嵌套的一般格式:
for 变量 in 序列: #外循环
for 变量 in 序列: #内循环
循环体
...
循环结构-例题
鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一,欲百钱买百鸡,鸡翁、鸡母、鸡雏各几何?
for i in range(0,101):
for j in range(0,101):
for k in range(0,101):
if :
print('小鸡', i, '母鸡', j, '公鸡', k)
第一轮循环
第二轮循环
第三轮循环
i/3 + j *3 + k * 5 == 100 and i+j+k==100
循环结构-while循环
while循环也称为直到型循环,它并不统计运行多少次循环,而是根据是否满足条件控制循环。
while循环四要素:初始条件,循环条件,循环变量,循环体
示例代码
i=1
s=0
while i<=100:
s=s+i
i+=1
print(s,i)
运行结果
初始条件:
循环变量:
循环条件:
循环体:
循环结构-while循环
while循环语句一般格式:
while 条件表达式:
循环体
while语句基于条件来控制循环体,循环次数可以确定,也可以不确定。
循环体中的语句应能使循环条件为假,或可以跳出循环体,从而避免无限循环
初始条件
while 终止条件的相反条件:
语句块
循环变量的增减
循环结构-例题
项目小组为了筹集购买奖品和纪念品的费用,准备开展一次募捐活动,计划依次向每个人募集20元。
问:第几个人募捐后募集到的总费用超过500元?
初始条件
while 终止条件:
语句块
循环变量的增减
循环结构-例题
sum=0
money=0
while money<=500 :
sum=sum+1
money=money+20
print(sum)
初始条件
终止条件
语句块和循环变量的增减
循环结构-例题
输入十进制数,输出转换后的二进制数。
84
2
42
2
21
2
— 0
— 0
10
2
— 1
5
2
— 0
2
2
— 1
1
— 0
— 1
1010100B
n=int(input("请输入十进制数:"))
s=""
while :
x=______
s=str(x)+s
n =______
print("转换后的二进制数为:"+s)
循环结构-例题
求0-10偶数的和。
sum=0
for i in range(0,11,2):
sum+=i
print(sum)
sum=0
i=0
while i<=10 :
if :
sum+=i
i+=1
print(sum)
sum=0
i=0
while i<=10 :
sum+=i
print(sum)
1
新课导入
李明是一名大学生村官,为了更好的规划村里的土地,李明准备对全村土地进行一次全面排查和丈量,其中有很多地块形状不规则,丈量起来比较麻烦,如图所示。请大家开动脑筋,想想办法,帮助他顺利完成土地丈量工作。
新课导入
分析:
要想计算其面积,可通过如下算法来完成:先将此地块划分成如图所示的4个三角形,测量出每个三角形的边长,利用海伦公式分别计算出这4个三角形的面积S1、S2、S3、S4,从而得到此地块的总面积S ( S=S1+S2+S3+S4)。
海伦公式求三角形面积函数:
而公式里的p为半周长(周长的一半):
S1
S2
S3
S4
构造函数
自定义函数
自定义函数:可以复用的代码,一般包括函数名、参数、函数体和返回值等四部分。
def 函数名(参数集合):
<函数体>
[return 函数值]
自定义函数的基本格式是:
函数名:函数的名称,必须有。1.以关键字def开头;2.命名规则:由字母、数字、下划线构成,不能以数字开头,不能是系统内置关键字。
参数集合:函数执行所需数据。参数集合可以是0个,也可以是多个。
函数体:函数的具体代码(计算过程)。必须有。
返回值:函数的计算结果。根据函数需要确定是否需要。如果需要则必须放在函数最后一行,以关键字return开头,返回值可以是一个也可以是多个。
自定义函数
def max(a,b):
if a > b:
return a
else:
return b
函数参数
使用def关键字定义函数
return关键字设置返回值,
即返回函数计算结果
函数体
自定义函数
def Area(a,b,c):
p=(a+b+c)/2
s=(p*(p-a)*(p-b)*(p-c))**0.5
return s
s1=Area(3,4,5)
s2=Area(5,12,13)
print(s1+s2)
完成函数的构造后,在程序中就可以根据需要调用该函数。
def 函数名(参数):
函数体
[return 返回值]
自定义函数
(1)无参数
def x1():
s=1
for i in range(1,5):
s=s*i
return s
print(x1())
(2)无返回值
def x1():
s=1
for i in range(1,5):
s=s*i
print(x1())
讨论:自定义函数x1的功能以及输出的值。
24
None
自定义函数
(3)有1个参数
(4)有多个参数时,参数间用逗号分隔开。
def x1(n):
s=1
for i in range(1,n+1):
s=s*i
return s
print(x1(4))
print(x1(3)+x1(5))
def x2(h1,h2):
s=h1*h2
return s
print(x2(2,3))
print(x2(3,4)+x2(5,6))
讨论:自定义函数x1、x2的功能以及输出的值。
>>> %Run dn.py
24
126
>>> %Run dn.py
6
42
自定义函数
默认(行)形参
def func(x, y=2):
print (x, y)
func(3)
func(3, y=4)
如果没有传递实参,则会使用默认参数,当然也可以通过传递实参来替换它的默认值。
1、形参:在定义函数阶段定义的参数, 叫形式参数(相当于变量名)
2、实参:再调用函数的阶段传入的值, 叫实际参数(相当于变量值)
3、默认形参: 在定义阶段就已经被赋值的,称之为默认参数;在调用时可以不赋值
函数与模块
模块(Module) 是用来把函数、变量以及其他东西组织成更大的、更强的程序。Python提供了大量模块,有些模块内置在Python之中,如用于数学计算的模块math;有些模块需要单独下载, 如用于科学计算的模块numpy。
$