python基础阶段 经典练习题 拾英札记(3)
对于编程学习来说,动手操练和重复训练很重要.
因为这是一个注重实践的活,最终要下笔落字.
更何况,即使你看了很多博客,听了很多课,你脑中的认识和手指下的-屏幕上的反馈,逻辑上是两个维度-两个载体的,中间需要时间来关联上,所以不能缺少实践.
很多时候,基于重复的操练,原有的困惑会化解,或许灵感收到启发,或许是刷进了潜意识,成为自己的固有认知了.
# 11 定义函数,生成纯数字验证码(预设4位数)
import random
# 定义函数的默认形参,默认是4位数
def code(num=4):
# 用容器的思想,来盛放展位性的变量 容器中转
code_list = []
for x in range(num):
# -->code_list.append(random.randint(0,9)) 我原来错误的输入
# TypeError: sequence item 0: expected str instance, int found
code_list.append(str(random.randint(0,9)))
# --> return(''.join(code_list)
# return 语句缩进位置有误
return(''.join(code_list)) print(code())
# 另外一种方法
import random
def code(num=4):
string = ''
lt = random.sample(string, num)
# sample(seq, n) 从列表或者字符串中随机抽取n元素,存放到新列表中,然后返回新列表
return ''.join(lt) print(code())
#12 模拟计算器(四则运算)
def add(a, b):
return a+b
def sub(a, b):
return a-b
def mul(a, b):
return a*b
def div(a, b):
return a/b # 用input来交互
a = int(input('请输入第一个数:'))
b = int(input('请输入第二个数:'))
fuhao = input('请选择运算符号(+ - * /):') # 流程控制,调用函数
if fuhao == '+':
print(add(a, b))
elif fuhao == '-':
print(sub(a, b))
elif fuhao == '*':
print(mul(a, b))
elif fuhao == '/':
print(div(a, b))
#另外一种方法
# 使用黑终端(命令行)交互
def add(a, b):
return a+b
def sub(a, b):
return a-b
def mul(a, b):
return a*b
def div(a, b):
return a/b import sys
# 使用黑终端(命令行)交互: 在win10系统下,按下'window'键+'r'键 -> 输入"cmd" -> 回车键,进入控制台命令窗口 -> 输入cd,空格,输入代码文件路径,空格,输入参数的值.
# sys.argv[]是在命令行用来获取参数的,sys.argv[0]表示代码本身文件路径,所以参数从1开始.注意,下面的变量(a b fuhao)即为代码文件的参数哦.
# 命令行参数以空格为分隔符
a = int(sys.argv[1])
b = int(sys.argv[2])
fuhao = sys.argv[3] if fuhao == '+':
print(add(a, b))
elif fuhao == '-':
print(sub(a, b))
elif fuhao == '*':
print(mul(a, b))
elif fuhao == '/':
print(div(a, b))
使用黑终端(命令行)交互
#13 归属地查询 输入手机号,匹配归属地(根据前七位)
string = '''5582|1860101|010|北京市|北京联通GSM卡
5583|1860100|010|北京市|北京联通GSM卡
5584|1368141|010|北京市|北京移动神州行卡
5585|1860111|010|北京市|北京联通GSM卡
5586|1358198|010|北京市|北京移动动感地带卡
5587|1361139|010|北京市|北京移动预付费卡
5588|1361138|010|北京市|北京移动神州行卡
5591|1360110|010|北京市|北京移动全球通卡
5748|1364110|010|北京市|北京移动神州行卡
10186|1581584|020|广东省广州市|广东移动全球通卡
15046|1391897|021|上海市|上海移动全球通卡
17250|1502207|022|天津市|天津移动全球通卡
21137|1345272|023|重庆市万州|重庆移动大众卡
22700|1347812|024|辽宁省沈阳市|辽宁移动大众卡
24256|1377065|025|江苏省南京市|江苏移动全球通卡
26360|1898606|027|湖北省武汉市|湖北电信CDMA卡
28709|1860802|028|四川省成都市|四川联通GSM卡
30641|1552961|029|陕西省西安市|陕西联通GSM卡
31700|1563007|0310|河北省邯郸市|河北联通GSM卡
33360|1583396|0311|河北省石家庄市|河北移动全球通卡
34825|1508122|0312|河北省保定市|河北移动全球通卡
35363|1551235|0313|河北省张家口|河北联通GSM卡
37700|1331326|0316|河北省廊坊市|河北电信CDMA卡
43500|1350358|0358|山西省吕梁市|山西移动全球通卡
43908|1553625|0359|山西省运城市|山西联通GSM卡
44521|1335360|0370|河南省商丘市|河南电信CDMA卡
50078|1509369|0378|河南省开封市|河南移动全球通卡
53603|1583981|0398|河南省三门峡|河南移动全球通卡
53916|1335897|0410|辽宁省铁岭市|辽宁电信CDMA卡
55248|1554254|0411|辽宁省大连市|辽宁联通GSM卡
58618|1374272|0427|辽宁省盘锦市|辽宁移动全球通卡
58932|1554183|0429|辽宁省葫芦岛|辽宁联通GSM卡
60268|1340475|0431|吉林省长春市|吉林移动大众卡
''' # 将字符串按照换行符进行切割
string_list = string.splitlines()
# 定义一个字典
area = {}
# 遍历每一行字符串,进行处理
for string in string_list:
# 将每一行字符串按照 | 切割
lt = string.split('|')
# 提取号码前7位
qianqi = lt[1]
# 提取归属地
guishu = lt[-1]
# 将号码前7位和归属地存放到字典中
area[qianqi] = guishu
# print(lt)
# break # print(area)
# 写个小死循环,用来查询手机号码归属地
while 1:
phone = input('请输入您的手机号码:')
# 提取输入手机号码的前7位
qiqi = phone[0:7]
# 判断键是否在字典中
if qiqi in area:
print('归属地为:%s' % area[qiqi])
else:
print('查无此号码')
#14 自己封装函数,实现相同于系统内置函数hex、oct、bin的功能 (以hex为例)
def my_hex(n):
lt = []
while n: n, yushu = divmod(n, 2)
# 循环结束条件n==0,break
# 请理解divmod()的内涵 # --> lt.append(yushu) 错误
# TypeError: sequence item 0: expected str instance, int found
lt.append(str(yushu))
# 取余取反
lt.reverse()
return '0x'+ ''.join(lt) print(my_hex(19))
#另外一种方法
def my_hex(n):
#格式化输出...呵呵
return '0x' + '%x' % n print(my_hex(18))
python基础阶段 经典练习题 拾英札记(3)的更多相关文章
- python基础阶段 经典练习题 拾英札记(2)
因为编程的练习题是交互式的,在不断调试和不断渐进完善中,你会有一种成就感和快乐感,不断的修缮,不断的尝试. 其实,认知自己,和探索世界,也是这样的啊. 只要不放弃,要坚持. #7 根据列表lt,实现 ...
- python基础阶段练习题 拾英札记(1)
python很灵活,学起来有人机交互的快乐感,贵在坚持. 做题对自学python很有帮助,融汇贯通-查漏补缺-巩固提高. 写了一些注释,希望能对您有所帮助. #1.输入一个3位数,计算个位.百位.十位 ...
- 二十三. Python基础(23)--经典类和新式类
二十三. Python基础(23)--经典类和新式类 ●知识框架 ●接口类&抽象类的实现 # 接口类&抽象类的实现 #①抛出异常法 class Parent(object): ...
- 1.1 - python基础语法 - 总结练习题
1.编译型与解释型语言的区别,哪些属于编译型,哪些属于解释型 编译型:c/c++/go 运行速度快,开发效率低,不可跨平台 解释型:python/java/php/ruby 运行速度低,开发效率高,可 ...
- Python基础篇 -- 部分练习题
实现一个整数加法计算器(两个数相加): 如:content = input("请输入内容:") 用户输入:5+9或5+ 9或5 + 9(含空白),然后进行分割转换最终进行整数的计算 ...
- Python基础阶段总结:ATM项目实战
目录 ATM逻辑描述 三层框架简介 1.第一层(src.py) 2.第二层(interface文件夹下内容) 3.第三层(db_hanlder) 启动函数 用户注册功能 用户登录 common中的小功 ...
- Python基础(十)re模块
Python基础阶段快到一段落,下面会陆续来介绍python面向对象的编程,今天主要是补充几个知识点,下面开始今天的内容. 一.反射 反射的作用就是列出对象的所有属性和方法,反射就是告诉我们,这个对象 ...
- Python经典练习题1:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
Python经典练习题 网上能够搜得到的答案为: for i in range(1,85): if 168 % i == 0: j = 168 / i; if i > j and (i + j) ...
- 【视频+图文】Java基础经典练习题(一)输出2-100之间的素数,及素数个数
目录 第一题:判断2-100之间有多少个素数,并输出所有素数. 1.视频讲解: 2.思路分析: 代码讲解:以i=4为例 4.为大家准备了彩蛋: 能解决题目的代码并不是一次就可以写好的 我们需要根据我们 ...
随机推荐
- IOC模式理解
理解IOC inversion of control 控制反转 与 DI Dependency Injection 依赖注入概念之前,我们需要知道在一个系统的设计过程中,降低各模块之间的相 ...
- ZPL条码打印类
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...
- 易语言关于使用CURL,网页_访问,网页_访问S,网页_访问_对象,鱼刺(winHttpW)发送Get性能测试
易语言关于使用 CURL,网页_访问,网页_访问S,网页_访问_对象,鱼刺(winHttpW)发送Get性能测试 测试模块情况: |-精易模块5.8 |-鱼刺类Http |-libCURL +++ ...
- 根据Dockerfile创建docker dotnet coer 镜像
那我们先来看看Dockerfile文件内容,注意这个文件是没后缀名的. #依赖原始的镜像,因为我们是要创建dotnet coer镜像,所以我就用了官方给的镜像[microsoft/dotnet:lat ...
- Hyper-v 虚拟机安装win7
Hyper-v 是微软自带的虚拟机 一般安装win10都有 对小娜说:Hyper就会出现 进入Hyper-v 如果虚拟机不可用 启动服务 新建虚拟机 一般设置可以自己随意 虚拟机第一代才可以使用win ...
- 2017上海QCon之旅总结(上)
本来这个公众号的交流消息中间件相关的技术的.这周去上海参加了QCon,第一次参加这样的技术会议,感受挺多的,所以整理一下自己的一些想法接公众号和大家交流一下. 下面进入正题,从自己参加了的一些分享中挑 ...
- bootstrap select多选
1.页面效果 <div class="form-group"> <div class="col-md-2 control-label"> ...
- Charles从入门到放弃
Charles版本:4.0.2 一.开始 连接方式 方法一:电脑和手机连接同一个wifi 方法二:电脑使用网线连接网络,手机通过USB连接电脑 二.过滤网络请求 1.简单过滤 在Sequence模式下 ...
- 关于js赋值给input解析
<script type="text/javascript"> //关于js中取值问题 $(function(){ //定义function函数 var firstDa ...
- iOS布局
1.Masonry 创建constraint来定义布局的方式: 1.1. mas_makeConstraints : 你可以使用局部变量后者属性来保存以便下次应用它 1.2. mas_updateCo ...