撩课-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中如何定义?使用场景是什么? 概念 写了一段代码实现了某个小功能; 然后把这些代码集中到一块, 起一个名字; 下一次就可以根据这个名字再次使用这个代码块, 这就 ...
随机推荐
- java异常术语
.检查性异常: 不处理编译不能通过 .非检查性异常:不处理编译可以通过,如果有抛出直接抛到控制台(所有RuntimeException的派生类都是非检查型异常) .非运行时异常: 就是检查性异常4.运 ...
- bash脚本编程学习笔记(二)
1.脚本编程之函数 函数是实现结构化编程重要的思想,主要目的是实现代码重用 定义一个函数: function FUNCNAME { command //函数体 } FUNCNAME(){ //函数 ...
- 快速搭建微信小程序开发环境
1.工具软件: 注:本文介绍的工具软件已分享到百度云盘,直接下载并按照本文介绍安装即可. 开发工具 v0.7 百度云链接: https://pan.baidu.com/s/1jIQ7i8A密码: aq ...
- ASP.NET MVC 发布后 IE 访问出现布局错乱问题
ASP.NET MVC 网页debug启动跑一切正常,[Chrome],[FireFox],[Edge],[IE11] 发布后,使用机器名访问,[IE11]出现布局不正常的问题, 在head里:加↓可 ...
- Set的总结
Set最重要的操作是查找,为查找而设计.存入HashSet的元素必须定义hashCode(); Set不保存重复的元素,元素必须唯一.通过equals()方法一确保对象的唯一性. Set中最常被用于归 ...
- notepad++常用操作梳理
在 设置---管理快捷键 可以查询/重置快捷键.如下: 工作or学习中最长用到的操作: Ctrl+ALT-C:列编辑Ctrl+U:转换为小写Ctrl+Shift+U:转换为大写Ctrl+B:跳转 ...
- 基于CH340的一键下载电路
一.CH340简介 CH340 是一个 USB 总线的转接芯片,实现 USB 转串口或者 USB 转打印口.CH340是国产芯片,应用场合居多,市场占有率很高.常用的USB转串口芯片还有CP2102. ...
- Docker安装MongoDb
1.下载镜像 docker pull mongo 2.运行mongo docker run --name mongo -v /data/mongodb:/data/db -p : -d mongo - ...
- js 的概念和声明-js 的变量-js 的运算符和逻辑结构-js 的数组
js 的概念和声明Js的概念和声明:问题:在网页的发展历程中,发现网页不能对用户的数据进行自动校验,和提供一些特效造成用户体验极差解决:使用JavaScript作用:可以让网页和用户之间进行直接简单的 ...
- 安卓手机移动端Web开发调试之Chrome远程调试(Remote Debugging)
一.让安卓打debug模式的apk包 二.将电脑中的chrome升级到最新版本,在chrome浏览器地址栏中输入chrome://inspect/#devices: 在智能手机还未普及时,移动设备的调 ...