对于编程学习来说,动手操练和重复训练很重要.

因为这是一个注重实践的活,最终要下笔落字.

更何况,即使你看了很多博客,听了很多课,你脑中的认识和手指下的-屏幕上的反馈,逻辑上是两个维度-两个载体的,中间需要时间来关联上,所以不能缺少实践.

很多时候,基于重复的操练,原有的困惑会化解,或许灵感收到启发,或许是刷进了潜意识,成为自己的固有认知了.

# 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)的更多相关文章

  1. python基础阶段 经典练习题 拾英札记(2)

    因为编程的练习题是交互式的,在不断调试和不断渐进完善中,你会有一种成就感和快乐感,不断的修缮,不断的尝试. 其实,认知自己,和探索世界,也是这样的啊. 只要不放弃,要坚持. #7  根据列表lt,实现 ...

  2. python基础阶段练习题 拾英札记(1)

    python很灵活,学起来有人机交互的快乐感,贵在坚持. 做题对自学python很有帮助,融汇贯通-查漏补缺-巩固提高. 写了一些注释,希望能对您有所帮助. #1.输入一个3位数,计算个位.百位.十位 ...

  3. 二十三. Python基础(23)--经典类和新式类

    二十三. Python基础(23)--经典类和新式类 ●知识框架   ●接口类&抽象类的实现 # 接口类&抽象类的实现 #①抛出异常法 class Parent(object):    ...

  4. 1.1 - python基础语法 - 总结练习题

    1.编译型与解释型语言的区别,哪些属于编译型,哪些属于解释型 编译型:c/c++/go 运行速度快,开发效率低,不可跨平台 解释型:python/java/php/ruby 运行速度低,开发效率高,可 ...

  5. Python基础篇 -- 部分练习题

    实现一个整数加法计算器(两个数相加): 如:content = input("请输入内容:") 用户输入:5+9或5+ 9或5 + 9(含空白),然后进行分割转换最终进行整数的计算 ...

  6. Python基础阶段总结:ATM项目实战

    目录 ATM逻辑描述 三层框架简介 1.第一层(src.py) 2.第二层(interface文件夹下内容) 3.第三层(db_hanlder) 启动函数 用户注册功能 用户登录 common中的小功 ...

  7. Python基础(十)re模块

    Python基础阶段快到一段落,下面会陆续来介绍python面向对象的编程,今天主要是补充几个知识点,下面开始今天的内容. 一.反射 反射的作用就是列出对象的所有属性和方法,反射就是告诉我们,这个对象 ...

  8. Python经典练习题1:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

    Python经典练习题 网上能够搜得到的答案为: for i in range(1,85): if 168 % i == 0: j = 168 / i; if i > j and (i + j) ...

  9. 【视频+图文】Java基础经典练习题(一)输出2-100之间的素数,及素数个数

    目录 第一题:判断2-100之间有多少个素数,并输出所有素数. 1.视频讲解: 2.思路分析: 代码讲解:以i=4为例 4.为大家准备了彩蛋: 能解决题目的代码并不是一次就可以写好的 我们需要根据我们 ...

随机推荐

  1. javascript中call()、apply()、bind()的用法终于理解

    其实是一个很简单的东西,认真看十分钟就从一脸懵B 到完全 理解! 先看明白下面: 例1 obj.objAge;  //17 obj.myFun()  //小张年龄undefined 例2 shows( ...

  2. Interface request structure used for socket ioctl's

    1. 结构体定义 /* * Interface request structure used for socket * ioctl's. All interface ioctl's must have ...

  3. http中错误代码的含义整理

    HTTP网页错误代码大全带解释 HTTP 400 - 请求无效HTTP 401.1 - 未授权:登录失败HTTP 401.2 - 未授权:服务器配置问题导致登录失败HTTP 401.3 - ACL 禁 ...

  4. Windows环境部署并调试pyspark(一)

    准备: windows环境说明:Python2.7 + pipspark版本:spark-1.6.1-bin-hadoop2.6 step1: 下载并解压tar包到自定义的路径.(下载链接 https ...

  5. win10 UWP 单元测试

    我们在写代码的时候不能保证我们写出来的代码是正确的,所以我们经常要单元测试. 单元测试和重构都是在做完一个小小函数一般就要进行一次,越早做就越好,可以比较早发现问题,这时我们还记得我们写的内容,不过比 ...

  6. jvm - 垃圾回收

    jvm - 垃圾回收 注意 : 本系列文章为学习系列,部分内容会取自相关书籍或者网络资源,在文章中间和末尾处会有标注 垃圾回收的意义 它使得java程序员不再时时刻刻的关注内存管理方面的工作. 垃圾回 ...

  7. 读书笔记-你不知道的JS上-对象

    好想要对象··· 函数的调用位置不同会造成this绑定对象不同.但是对象到底是什么,为什么要绑定他们呢?(可以可以,我也不太懂) 语法 对象声明有两个形式: 1.字面量 => var obj = ...

  8. 采访 Lua 发明人的一篇文章

    采访 Lua 发明人的一篇文章 来源 https://blog.codingnow.com/2010/06/masterminds_of_programming_7_lua.html <Mast ...

  9. VS2008 生成静态链接库并使用

    1.启动VS2008创建一个Win32控制台程序 2.选择静态库 3.创建两个文件lib.h和lib.cpp //lib.h #ifndef LIB_H #define LIB_H int add(i ...

  10. Assignments

    Assignments Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tota ...