撩课-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中如何定义?使用场景是什么? 概念 写了一段代码实现了某个小功能; 然后把这些代码集中到一块, 起一个名字; 下一次就可以根据这个名字再次使用这个代码块, 这就 ...
随机推荐
- iOS出现 _OBJC_CLASS_$_ZSHomeServiceDataElementGroupLargeImage", referenced from:以及linker command failed with exit code 1 (use -v to see invocation)的错误分析
先说第一个问题 出现这样的错误我总结的原因有两个,我碰到过的: 1.文件重命名,在你创建文件的时候重名了 2.如果你是在一个类中又创建了一个或者多个类,那么你可能没有实现你写的类,也就是你只是@int ...
- [arc079f] Namori Grundy 分类讨论
Description 给给全有一个NN个点NN条边的有向图,点的的编号从11到NN 给给全的图有NN条边,形如:(p1,1),(p2,2),...,(pN,N)(p1,1),(p2,2),...,( ...
- Comet OJ - Contest #0题解
传送门 菜爆了--总共只有一道题会做的--而且也没有短裙好难过 为啥必须得有手机才能注册账号啊喂--歧视么-- \(A\) 解方程 推一下柿子大概就是 \[x-\sqrt{n}=y+z+2\sqrt{ ...
- nosql基本了解
数据库分为关系型数据库和非关系型数据库nosql,关系型数据库比较常见,此处不再多讲:nosql有key-value存储数据库,比如redis:文档型数据库,比如mongodb:列存储数据库,比如hb ...
- 0基础浅谈反射型xss(2)
0x1:回顾前文疑惑“先闭合,在构造” 上一篇,我们说到了xss的一个触发精髓,“先闭合,在构造”,对于前面的先闭合,我们来简单的解释一下: 首先说,为什么要闭合? 因为HTML标签都是成对出现的 ...
- sqli-labs lession 5 之盲注型SQL入门
本文作者:Mochazz 如果所查询的用户id在数据库中,可以发现页面显示”You are in”,而不像前4关那样会显示出具体的账号密码. 如果sql语句查询结果不存在,则不会显示”You are ...
- You need to use a Theme.AppCompat theme (or descendant) with this activity问题
You need to use a Theme.AppCompat theme (or descendant) with this activity问题 https://blog.csdn.net/j ...
- 【性能测试】脚本开发,最普通的http协议脚本2
Action() { lr_start_transaction("FM0075基金购买"); web_submit_data("ehouse_ehGetPwdRandom ...
- /usr/bin/ld: cannot find -lperconaserverclient_r 解决
编译sqladvisor安装遇到: [root@localhost sqladvisor]# cd SQLAdvisor/sqladvisor/ [root@localhost sqladvisor] ...
- docker + nginx 部署vuejs3.0项目
1:用指令 npm run build 打包vusjs项目(该项目是在github上下载的).打包成功后会生成一个目录dist. 2:把该文件夹拷贝到腾讯云服务器(操作系统 centos7)下的/us ...