撩课-Python-每天5道面试题-第4天
一. for循环和while循环中的else代表什么意思?
当for循环和while循环顺利的遍历完成时, 就会执行else分支
如果循环过程中, 碰到continue, 只要没有打断循环, 就会继续执行else
例如: for i in range(, ):
print(i)
continue
else:
print("循环顺利执行完毕后", i) # 会打印
for i in range(, ):
print(i)
break
else:
print("循环顺利执行完毕后", i) # 不会打印
for i in range(, ):
print(i)
continue
break
else:
print("循环顺利执行完毕后", i) # 猜会不会打印?
二. break, continue, pass, return和exit分别代表什么意思?
break和continue 一般应用在循环语句中
break 代表是: 打断循环, 跳出循环体, 不再往下一个循环执行
continue 代表是: 从当前位置结束本次循环, 继续下一次循环 pass 一般应用场景, 在于保持代码的结构完整; 表示告诉系统这里有东西, 但暂时不做处理;
例如: 在循环体中, 在类定义中, 在函数定义中 for i in range(, ):
pass class Sz:
pass def test():
pass
return一般应用于函数中用于返回函数内部数据, 碰到return, 就不再继续往下执行;
def test():
print()
return "itlike"
print() # 此行代码不会被执行到 print(test()) # 打印 itlike
exit是指程序级别的退出, 无论放在哪个位置, 只要碰到这玩意, 就整个程序执行完毕, 不再继续往后执行
三. 写循环代码时, for 和 while该如何选择, 以及有什么注意事项?
如果能够确定循环次数, 并且在内部需要用到索引, 或者循环数据, 则选择for循环;
比如: 求出1到100之和
如果不能确定循环次数, 仅仅是一些特定条件, 则选择使用while循环
比如: 让用户猜数字, 猜到对为止; 让用户输入密码, 输入到对为止
使用循环时, 注意避免死循环; 另外, 为了提升代码执行效率, 不要循环重复性的, 没意义的耗时操作
例如: 我们在循环体内部用到1-1000之间的数值之和; 这个数据就在外面计算好, 然后在内部使用, 不要在循环体内部计算; 你计算1000遍, 结果都一样, 除下费电, 耗性能, 你图不到啥玩意
四. 代码实现: 接收用户输入的两个数值a和b, 使用循环计算出a的b次方
a = int(input("please input num a: "))
b = int(input("please input num b: "))
# 自行考虑容错
result =
for i in range(, b + ):
result *= a
print(result)
五. 计算超长的两个整数192837465564738291 + 832465961738262之和(不要直接使用+法运算, 假装如果数值很长, 会产生溢出)
# 算法思路:
# 以字符串的形式, 模拟两个数据的加法运算
# 重点在于: 考虑两个数据的长度, 以及进位处理 a =
b = # . 将两个数值, 转换成对应的字符串
a_str = str(a)
b_str = str(b) # . 根据长度, 补全长度短的那个字符串, 在字符串前面, 用0补全
a_str_len = len(a_str)
b_str_len = len(b_str) zero_len = a_str_len - b_str_len
if zero_len > :
b_str = "" * zero_len + b_str
elif zero_len < :
a_str = "" * (- zero_len) + a_str # . 循环字符串, 从个位(数值最右侧), 开始相加运算
# 并在计算同时, 更新进位, 累加到下次运算中
result_str = ""
carry_num = # 进位, 默认为0
for idx in range(len(a_str) - , -, -):
tmp = int(a_str[idx]) + int(b_str[idx]) + carry_num
result_str = str(tmp % ) + result_str # 将单次计算结果拼接到结果字符串中
carry_num = tmp // 10 # 更新进位 print(result_str)
撩课-Python-每天5道面试题-第4天的更多相关文章
- 撩课-Java每天5道面试题第13天
撩课Java+系统架构点击开始学习 96.JDBC操作数据库的步骤 ? .加载数据库驱动 .创建并获取数据库链接 .创建jdbc statement对象 .设置sql语句 .设置sql语句中的参数(使 ...
- 撩课-Java每天5道面试题第15天
撩课Java+系统架构点击开始学习 106.什么是Hibernate的并发机制?怎么去处理并发问题? a.Hibernate的Session对象是非线程安全的, 对于单个请求,单个会话, 单个的工作单 ...
- 撩课-Java每天5道面试题第10天
撩课Java+系统架构 视频 点击开始学习 81.Servlet的会话机制? HTTP 是一种无状态协议, 这意味着每次客户端检索网页时, 都要单独打开一个服务器连接, 因此服务器不会记录下 先前客户 ...
- 撩课-Java每天5道面试题第9天
撩课Java+系统架构 视频 点击开始学习 76.XML技术的作用? XML技术用于数据存储. 信息配置. 数据交换三方面. 可以将数据存储在XML中, 通过节点. 元素内容. 属性标示数据内容及关系 ...
- 撩课-Java每天5道面试题第8天
撩课Java+系统架构 视频 点击开始学习 71.jsp有哪些内置对象?作用分别是什么? Page, pageContext, request, response, session, applicat ...
- 撩课-Java每天10道面试题第7天
撩课Java+系统架构 视频 点击开始学习 61.什么是并发修改异常? 什么是并发修改异常: 当我们在遍历实现了collection接口 与iterator接口的集合时(List.Set.Map), ...
- 撩课-Java每天10道面试题第4天
撩课Java+系统架构 视频 点击开始学习 31.静态变量和实例变量的区别? 静态变量也叫类变量, 这种变量前加了static修饰符. 可以直接用类名调用, 也可以用对象调用, 而且所有对象的同一个类 ...
- 撩课-Python-每天5道面试题-第9天
一. Python程序中, 文件的处理步骤是什么? 打开 open("文件","模式") 读写 2.1 读 f.read(字节数) 字节数默认是文件内容长度 下 ...
- 撩课-Python-每天5道面试题-第8天
一. 解释下什么是闭包? 有怎样的场景作用? 概念 在函数嵌套的前提下 内层函数引用了外层函数的变量(包括参数) 外层函数, 又把 内层函数 当做返回值进行返回 这个内层函数+所引用的外层变量, 称为 ...
- 撩课-Python-每天5道面试题-第6天
一. 函数的概念是什么? 在Python中如何定义?使用场景是什么? 概念 写了一段代码实现了某个小功能; 然后把这些代码集中到一块, 起一个名字; 下一次就可以根据这个名字再次使用这个代码块, 这就 ...
随机推荐
- 微信小程序 —— button按钮去除border边框
button默认有边框,边框用“border : none”去掉就不可以,边框依然存在, 使用 button::after{ border: none; } 来去除边框,边框就没了 wxml: < ...
- BZOJ 1934--善意的投票(最小割)
1934: [Shoi2007]Vote 善意的投票 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 2354 Solved: 1471[Submit][ ...
- 50余本中外Python电子教程及源码下载地址
链接:http://pan.baidu.com/s/1c0VTwsC 密码:hapu
- linux进程查看及管理的工具
介绍Linux进程查看及管理的工具:pstree, ps, pidof, pgrep, top, htop, glance, pmap, vmstat, dstat, kill, pkill, jo ...
- JVM调优总结 -Xms -Xmx -Xmn -Xss(转自:iteye unixboy)
堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制:系统的可用虚拟内存限制:系统的可用物理内存限制.32位系统下,一般限制在1.5G~2G:64为操作 ...
- appium Capabilities的各个标签
今天详解一下Capabilities的各个标签,以后如果用得着可以随时翻阅. General Capabilities 标签 概述 值 automationName 使用引擎 默认为Appium,其中 ...
- GDB:从单线程调试到多线程调试(MFiX单步调试)
GDB:从单线程调试到多线程调试 1. 裸跑GDB 1.1 安装GDB sudo apt-get install gdb 1.2 编译程序 由于需要调试,因此编译的时候需要添加-g编译参数: 1.3 ...
- [HNOI2019]多边形
Luogu5288 注意:n边形里共有n-3条边 最优步数=不与n相连的边数,关键是方案数. 按照处理顺序可以转化为树形结构即二叉树森林,转移方案数用组合数即可 关键是快速处理修改. 1.最优解减少一 ...
- Hibernate查询方式&抓取策略
Hibernate的查询方式 1.OID查询 hibernate根据对象的OID(主键)进行检索 使用get方法 Customer customer=session.get(Customer.clas ...
- Alfred修改内置Terminal为iTerm
用这个脚本: on write_to_file(this_data, target_file, append_data) try set the target_file to the target_f ...