Q6. 函数局部变量赋值问题

P37:“print语句后面的赋值语句使x成为函数g中的局部变量
执行print语句时还没有被赋值。”报错的原因不是很理解~

bigjing:

在回答这个问题前,我们先理解一个规则:【全局变量和局部变量同名的时候,局部变量优先】或者说【近的优先】,同理,父类和子类有同名的属性或方法时,子类优先,也就是说先调用子类的,子类没有,再向上调用父类的。
回到正题:
函数 f 和 g 的唯一区别是,函数 g 的声明中有局部变量x ,所以函数体中print(x)的时候,将打印局部变量x,而不会打印全局变量x。但【矛盾】的是,在print(x)时,局部变量x还没有被赋值,所以报错。
而函数 f 中没有局部变量x,所以打印的是全局变量x,故不会报错。

Q7.print对象类型

P37:print('Testing x =', str(x), 'and power = ', power)
为什么要将x转换为string?

bigjing:

个人觉得转和不转没什么区别
简略证明:

>>>x=8
>>>power =3
>>>print('Testing x =', x, 'and power = ', power)
Testing x = 8 and power =  3>>>x=str(8)
>>>power =3
>>>print('Testing x =', x, 'and power = ', power)
Testing x = 8 and power =  3

Q8.形参列表

P38:“如果在编辑器中输入findRoot(,会显示形参列表。”
findRoot(运行失败。

Q9.函数调用

P42:“我们不将第一个(本例中是唯一一个)参数放在函数名后面的小括号中,而使用点标记法将这个参数放在函数名之前。”
什么情况下放在括号中,什么情况下使用点标记法?

bigjing:

我讲下我对这个题目的理解,可能理解有误:

全段内容是这样的:
我们讲到“类”的时候会介绍更多关于方法调用的知识,眼下可以将它看作一种特殊形式的函数调用。调用时,我们不将第一个(本例中是唯一一个)参数放在函数名后面的小括号中,而使用点标记法将这个参数放在函数名之前。

对方强调的可能是python是面向对象的编程语言,函数调用是将参数放在函数名后面,但我们面向对象编程一般将函数写成方法,方法调用用的是点标记。

Q10.合取项

P43:return s[0] == s[-1] and isPal(s[1:-1])
“除非第一个合取项取值为True,否则第二个合取项不被求值。”
不是很能理解这种逻辑

bigjing:

这叫【短路计算】,比如:

A or B ,我们知道有一个为真,则为真。所以:
当A为True,则返还A(B真或假对结果无影响)
当A为False,则返还B(因为真假结果取决与B)
A and B , 有一个为假,则为假。所以:
当A为False,则返还A(B真或假对结果无影响)
当A为True,则返还B(因为真假结果取决与B)

你有没有发现,短路计算本质上为了提升运行效率,否则,每一次都要对A和B进行逻辑判断才能得到结果

Q11.None

P8+33+52:None可以作为值使用?

bigjing:

None可以作为值来使用,本身就是一个常量,和0,'1'等类似
拓展:
None是一个特殊的常量。
None和False不同。
None不是0。
None不是空字符串。
None和任何其他的数据类型比较永远返回False。
None有自己的数据类型NoneType。
可以将None赋值给任何变量。

Q12.多重赋值

P11+51:x,y=2,3与x,y=(3,4)有区别么
两种赋值方式的type结果一样耶~

bigjing:

本质上都是按位置赋值。所以你还可以写成x,y=[3,4] ,x,y= {3,4}

lmz:
x,y = {3,4},这结果虽然满足预期,但是并不推荐用这这种方法,set里面的元素是无序的,无法保重每一次的结果都如预期一样!
x,y=2,3与x,y=(3,4)不仅仅本质是一样,他们是完全相同的,只是第一种省略了括号!
比如你输入2,3 python的解释器会给你返回(2,3)

Q13.公约数

P51:t1,t2应该不是正整数而是元组吧
返回的结果应该也不叫t1和t2的公约数,而是交集吧~
def intersect(t1, t2): """假设t1和t2是正整数返回一个元组,包含t1和t2的公约数""" both t1 and t2""" result = () for e in t1: if e in t2: result += (e,) return result

`bigjing:
翻译错误,原版的意思就是返还交集

Q14.单元素元组

P50+52:“要想表示包含1的单元素元组,我们应该写成(1,)。”
可是为什么我这样运行(1)没有报错,(1,)里面的,看着好奇怪~

bigjing:

不会报错的原因是:你打印的是数字1,但这不是元组
由于括号() 和元组()在单元素时会发生歧义,故加逗号以区分

详解可以看看此链接

PYTHON编程导论群问题汇总(四)相关推荐

  1. PYTHON编程导论群问题汇总(一)

    问题1 [Jane] 课程视频用的是python 2.7并推荐了一个软件 可是书上用的是python 3 所以是安装视频推荐的软件来学习 还是用自己的python 3好呢 Bigjing 推荐pyth ...

  2. PYTHON编程导论群问题汇总(三)

    Q1: week2-3, Ex-guess my number 在做week2练习:guess my number时遇到一个小问题. 代码已经写好,结果也和给出的答案一样,但是格式有一点不同,如下: ...

  3. PYTHON编程导论群问题汇总(二)

    问题1 [lmz] 为什么说计算机储存整数(int)是精确的 而储存小数(float)则是不精确的? Aris 我举2个例子, 还原计算机如何表示 0.625, 0.1 问题2 [lmz] Guess ...

  4. PYTHON编程导论群问题汇总(五)

    Q15.改变对象与绑定 P54:Univs和Univs1被绑定到不同的对象的原理不是很清楚. bigjing: Univs = [Techs, Ivys] Univs1 = [['MIT', 'Cal ...

  5. PYTHON编程导论群【提问与解惑】数据统计

    第一周 # 第一周 import matplotlib.pyplot as plt import seaborn as sns plt.rcParams['font.family'] = ['SimH ...

  6. python交互式程序设计导论答案第五周_学堂在线_计算机科学与Python编程导论_章节测试答案...

    学堂在线_计算机科学与Python编程导论_章节测试答案 更多相关问题 素描的三种表现形式是:(). 运行下列程序:Private Sub form_Click()For i = 1 To 2x = ...

  7. 计算机编程导论python程序设计答案-学堂云_计算机科学与Python编程导论_作业课后答案...

    学堂云_计算机科学与Python编程导论_作业课后答案 答案: 更多相关问题 保本基金参与股指期货交易,应当根据风险管理的原则,以套期保值为目的.() 基金经理主要依据股票投资价值报告来决定实际的投资 ...

  8. 计算机编程导论python程序设计答案-学堂在线_计算机科学与Python编程导论_作业课后答案...

    学堂在线_计算机科学与Python编程导论_作业课后答案 答案: 更多相关问题 近代中国完全沦为半殖民地半封建社会的标志是:A.<马关条约>B.<辛丑条约>C.<凡尔赛和 ...

  9. Python 编程导论 Chapter 4 —— 函数、作用域与抽象

    typora-copy-images-to: Risk Management and Financial Institution typora-copy-images-to: Python 编程导论 ...

最新文章

  1. 作为候选人,你需要问些什么?你需要查些什么?这些关乎你的利益和未来!
  2. Maven详解(二)------ Maven的安装配置
  3. 采访与书评 —— 《BDD In Action》
  4. Linux ls 命令详解
  5. 批处理:修改COM端口号
  6. Android运行时异常 couldn't find xx.so
  7. ad如何选中当前层上的器件_82条AD转换设计经验总结!
  8. 【Java】编写Java程序,完成从键盘输入两个运算数据,计算两数之和并输出结果...
  9. docker从入门到实践第三版pdf_测开日常积累--Docker入门到实践
  10. SpringBoot------拦截器Filter的使用
  11. linux service命令
  12. 学习笔记-关于pf标志位
  13. BosonNLP情感词典 评论情感分析
  14. 内录音频(Windows系统)
  15. ARP网关欺骗原理及解决办法
  16. android studio深色模式,Xamarin 中的深色模式
  17. 【C++】 文件提取英文单词
  18. rabbitMq设置多线程并设置线程池消费处理
  19. java简单从一个数据库获取数据,然后插入到另外一个数据库
  20. 计算机图形学基础徐文鹏知识点,计算机图形学基础(OpenGL版)

热门文章

  1. 【转】android电池(四):电池 电量计(MAX17040)驱动分析篇
  2. 技术图文:进一步完善自动化交易系统 - 03
  3. Strategy_Level3
  4. 【Code forces】63B Settlers' Training
  5. 【ACM】Uva 1152 (4 Values whose Sum is 0) 二分查找lower_bound() 和upper_bound()的使用
  6. “奥利”来啦,腾讯Robotics X实验室跑出的“轮滑小子”
  7. 美国 AI 博士一针见血:Python 这样学最容易成为高手!
  8. 漫画 | 程序媛小姐姐带你一次了解什么是排序算法
  9. 我在旷视研究院做检测 | 技术头条
  10. 腾讯58篇论文入选CVPR 2019,两年增长超200%