内容正文:
null
【任务1】
#身份证编码问题
name=input("请输入你的姓名:")#输入姓名
ID=input("请输入十八位身份证号码:")#输入身份证号码
#求出year,month,day
year=____①_____
month=____②_____
day=____③_____
print(name,",您好!您的生日是:",year,"年",month,"月",day,"日。")
【任务2】判断性别部分代码(请先完成任务1后,再复制到Python文件)
#判断性别
ID_sex=____④_____
⑤
print("您的性别为",sex,"。")
学科网(北京)股份有限公司
$
Python分支结构 导学案
【学习目标】
1.理解并掌握分支结构的特点。
2.掌握分支结构中条件的表达。
3.学会用流程图描述包含分支结构的算法。
【复习巩固】
1. “#” 后面的内容为注释,在程序运行时不执行。注释主要用于对程序代码进行说明,便于程序的理解和维护。
2.在Python中,变量名可以包括字母、数字和下划线,但不能以数字开头,而且字母区分大小写。
3. input函数实现了用户和计算机程序的交互输入。input函数可以让用户输入字符串,存放到一个变量里。例如,c=input("提示的内容:") 。
4. int()函数 的作用是将字符串转换成整型数字。
【知识背景】
身份证的编码问题
中国大陆居民身份证号码由18位数字组成:
· 第7至14位的数字代表居民的出生年月日
· 其中第17位的数字表示性别,奇数为男性,偶数为女性
(1)抽象与建模
首先,需要用户输入姓名和18位身份证号码。然后,通过提取身份证第7至14位的数字代表用户的出生年月日,输出用户的生日。
接着,需要提取身份证第17位,如果第17位是偶数,则性别为女,否则,性别为男。最后输出用户的性别。
身份证编码问题数据分析表
变量名
数据类型
含义
name
字符串型
用户姓名
ID
字符串型
用户身份证号
year
字符串型
用户出生年份
month
字符串型
用户出生月份
day
字符串型
用户出生日期
ID_sex
字符串型
用户身份证号第17位
sex
字符串型
性别为男,sex的值为“男”
否则,sex的值为“女”
通过上述的问题抽象,可建立如下计算模型:
“男” (ID_sex为奇数)
sex=“女”( ID_sex为偶数)
【任务1】
通过用户身份证号第7至14位,计算用户的出生年月日,并输出。
请完成代码①~③部分的代码填空,并运行调试。
【学习内容】
· 基本思想
我们常常需要根据某个条件的运行结果来控制程序的执行走向,这样的结构称为分支结构。
算法进行程序实现时,分支结构可以用if语句来实现。
一般格式是:
条件是一个关系表达式,它的值可以是真( True )或假 ( False )。
当条件为真时,执行语句块1中的语句,否则(条件为假)执行语句块2中的语句。
· 算法实例
【任务2】
已知: “身份证第17位数字表示性别,奇数为男性,偶数为女性。”
请使用分支结构,完成身份证第17位的数字的奇偶性判断。
(2)设计算法
根据上述计算模型,解决问题的关键是根据ID_sex做出判断,可采用分支结构设计算法。
其中,主要部分流程图如图所示,请使用自然语言将流程图补充完整。
(3)编写程序
根据流程图,在Python文件中完成判断性别(if语句)部分的代码编写。
要点提示:
①在Python中,行尾冒号的作用是告诉Python接下来要创建一个新的语句块。
因此,只要某一行以冒号结尾,它接下来的内容就应该有缩进。
Python中有一个惯例:总是将语句块缩进4个空格。
②同一个if语句中,if、else 下方的语句块必须采用相同的缩进。
③关键字、变量名、运算符之间需要用空格分隔。
④Python算数运算符
⑤Python关系运算符
注意区分赋值运算符“=”和关系运算符“==”。
【拓展:程序运行界面设计】
请发挥你的创意,设计属于你的登录界面。(可酌情参考以下界面)
简约版:
银行系统登录版:
男性:先生 女性:女士
游戏实名认证版:
使用if语句判断年龄:小于18周岁(未成年) 或者 大于等于18周岁(已成年)
系统登录版:
学科网(北京)股份有限公司
$
Python分支结构 课后提高作业
【巩固提升】
已知: “身份证第18位数字代表校验码。
校验码是0-10这十个数字中的任意一个,其中10用X表示。
校验码的计算方法如下:
①将身份证号码的前17位数字分别乘以对应的系数。对应关系如下:
号码位
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
系数
7
9
10
5
8
4
2
1
6
3
7
9
10
5
8
4
2
②将17位数字和系数相乘得到结果累计求和。
③用所求的和除以11得到余数;
④用余数与身份证号码最后一位校验码进行对应,对应关系如下:
余数
0
1
2
3
4
5
6
7
8
9
10
校验码
1
0
X
9
8
7
6
5
4
3
2
【流程图】
【程序】根据流程图,在Python文件中完成if语句的代码编写。
为实现上述功能,请将下列Python程序补充完整。
(先删除红色部分,再将程序填写完成后,复制到现有代码的下方。)
#判断校验位
ID_check=ID[17]
check="10X98765432"
sum=int(ID[0])*7+int(ID[1])*9+int(ID[2])*10+int(ID[3])*5+int(ID[4])*8+int(ID[5])*4\
+int(ID[6])*2+int(ID[7])*1+int(ID[8])*6+int(ID[9])*3+int(ID[10])*7+int(ID[11])*9+int(ID[12])*10\
+int(ID[13])*5+int(ID[14])*8+int(ID[15])*4+int(ID[16])*2
yushu=_______①_______
if check[yushu]==ID_check:
flag=_______②_______
else:
flag=_______③_______
print("您的验证码:",flag,"。")
学科网(北京)股份有限公司
$(如果你忘记了自己的身份证号码,可以使用以下信息进行测试。)
姓名:张三
十八位身份证号码:33020120020818029X
生日:2020年08月18日
性别:男
3.4.1Python分支结构
老师
89927
(身份证编码问题)
1
身份证的编码问题
身份证号
邮政编码
生活中常见的编码
二维码
模拟信号数字化过程
第 页
2
身份证的编码问题
省
级
代
码
地
市
代
码
县
区
代
码
出
生
年
份
出
生
月
份
出
生
日
期
顺
序
号
校
验
码
第7至14位的数字代表居民的出生年月日
第17位的数字表示性别,偶数为女性,奇数为男性
身份证的编码问题
位 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
身份证号 3 3 0 2 0 1 2 0 0 2 0 8 1 8 0 2 9 X
第 页
3
身份证的编码问题
我们是否可以编写一个Python程序,实现:
用户输入姓名和十八位身份证号码,
程序自动输出用户的出生年月日和性别?
第 页
4
任务1:获取用户出生年月日
Python提供了一个 输入函数 input()
可以让用户输入字符串,存放到一个变量里,例如:
c=input("提示的内容:")
书本P80
在Python中,int()函数 的作用是将字符串转换成整型数字。
字符串
整型数字
int()
第 页
5
字符串在创建以后都可以进行某些特定的操作,
如提取序列中的一部分元素。
字符串元素都是通过索引来定位的。
书本P77
任务1:获取用户出生年月日
第 页
6
字符串元素都是通过索引来定位的。(索引从0开始。)
索引 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
身份证号 3 3 0 2 0 1 2 0 0 2 0 8 1 8 0 2 9 X
出生年月日
判断性别
ID_sex
年份
日期
月份
位 1 2 3 4 5 6 7 8 9 10 11 12 12 14 15 16 17 18
索引 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
任务1:获取用户出生年月日
第 页
7
选择哪个口味的冰淇淋好吃?
选择哪条路可以走出迷宫?
选择性问题
任务2:判断用户性别(分支结构)
第 页
8
分支结构
我们常常需要根据某个条件的运行结果来控制程序的执行走向,
这样的结构称为分支结构。
分支结构的执行是依据一定的条件选择执行路径,适合于带有逻辑或关系比较等条件判断的计算。
分支结构
任务2:判断用户性别(分支结构)
第 页
9
第17位数字是是偶数?
是
否
性别←女性
性别←男性
输出性别
通过身份证第17位数字判断性别流程图
(自然语言)
身份证第17位的数字表示性别,
偶数为女性,
奇数为男性。
②第17位数字是是偶数?
①性别←女性
③性别←男性
请将下列选项填入流程图中
任务2:判断用户性别(分支结构)
第 页
10
变量、常量、运算符和圆括号等按一定的规则组合构成一个表达式,
可以用来描述数据的计算过程或各种条件的判断等。
书本P75
任务2:判断用户性别(分支结构)
第 页
11
用关系运算符将两个表达式连接起来的式子称为关系表达式。
书本P75
任务2:判断用户性别(分支结构)
第 页
注意区分赋值运算符“=”和关系运算符“==”
12
第17位数字是是偶数?
是
否
性别←女性
性别←男性
输出性别
sex="男"
sex="女"
ID_sex % 2==0
print(“性别为”,sex)
sex="男"
通过身份证第17位数字判断性别流程图(Python语言)
任务2:判断用户性别(分支结构)
第 页
13
if语句
算法进行程序实现时,分支结构可以用if语句来实现。
书本P81
Python语言采用代码缩进和冒号(:)来区分代码之间的层次。
任务2:判断用户性别(分支结构)
第 页
14
作业提交
作业上交要求
请将文件名称改成“班级+学号+姓名”,例如“190101XXX”
请上交Python源程序文件(.py)
上交的每次程序作业,将作为平时成绩记录,请认真完成!
优秀记2分,上交记1分,未交扣1分
第 页
15
$