Python读书笔记20(函数与变量类型)

上期和大家分享了函数如何返回值。其中有个案例是实现知道边长输出正方形面积。

我们来回顾一下!

假如我们有一个L的列表,能否批量实现开平方的运算并赋值给新的列表呢?

当我们定义这样一个函数的时候,square参数可以输入哪些变量的实参?

首先哪些变量可以使用in函数来查找?

1、字符串;2、列表;3、元组;4、字典

那本函数想要不报错,哪种类型作为实参是可以的?

这个函数哪些实参可以呢?

决定自定义函数实参类型是否报错由什么决定呢?

是由这个函数的使用决定的,针对第二个函数,我们实现的功能只是打印而已,则上述四种类型变量均可!

第一个函数,我们要实现的数学运算。则不能传递任何字符串的信息进函数。包括不能使用字符串;不能使用含字符串的列表、元组;不能使用键名称是文本的字典。

其他的变量类型能否成功,请各位自己编辑试一下~

上面的函数可以实现列表作为参数输入,但是却分别输出结果的,能否输入一个边长列表,输出平方后的面积列表呢?

提问:当我们调用函数的时候,Python提示我们Slist没有定义,那为什么L和S没有定义没有报错,而Slist.append()却报错呢?

回答:因为L和S都有过赋值,Python在第一次赋值的时候对变量进行了定义!

提问:S = L**2 这个是赋值我理解,L本身没有赋值哇!

回答:for L in L_list 本身循环语句第一次执行的时候等同于 L = L_list[0] 此时已经做了赋值了,所以本次赋值决定了L的变量类型

而Slist从始至终没有定义过数据类型,直接调用append方法当然会报错了!

提问:如何解决呢?

回答:可以考虑增加一下有默认值的形参来解决这个故障!

这样在定义函数的时候,我们已经将Slist赋值为空列表,已经确定了他的变量类型。

就酱,下期继续分享函数与列表的那些事~

原文发布于微信公众号 - 阿凯的Excel(akexcel)

原文发表时间:2018-01-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏coding for love

ES6常用新特性学习2-展开运算符

展开运算符也是我平时在书写代码是经常用到的新特性,允许一个表达式在某处展开,主要适用于数组或者类数组的展开,他给我们的coding过程带来了极大的便捷。

902
来自专栏C/C++基础

C++中基类私有成员会被继承吗

在类的继承中,类的私有成员在派生类中是“不可见“的,这种”不可见“是指在派生类的成员函数中,或者通过派生类的对象(指针,引用)不能直接访问它们。但是,不能直接访...

512
来自专栏IMWeb前端团队

ECMAScript 6 新特性总结

本文作者:IMWeb 张颖 原文出处:IMWeb社区 未经同意,禁止转载 前言 个人感觉ECMAScript 6总体上来说:添加了块级作用域,增加了一...

2836
来自专栏Python爱好者

Java基础笔记07

743
来自专栏函数式编程语言及工具

Scalaz(5)- typeclass:my typeclass scalaz style-demo

  我们在上一篇讨论中介绍了一些基本的由scalaz提供的typeclass。这些基本typeclass主要的作用是通过操作符来保证类型安全,也就是在前期编译时...

1869
来自专栏信数据得永生

JavaScript 编程精解 中文第三版 六、对象的秘密

2736
来自专栏Java帮帮-微信公众号-技术文章全总结

Java基础-day10-基础题-继承;抽象类

Java基础-day10-基础题-继承&抽象类 什么是继承?继承有什么好处? 继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类...

3286
来自专栏PHP实战技术

解构赋值,你不能不懂!

13610
来自专栏互联网开发者交流社区

每个java初学者都应该搞懂的问题

1103
来自专栏我和PYTHON有个约会

18. 再说循环~列表和循环的高级操作

在前面的课程中,我们已经学习了循环和函数的基本操作,这节内容主要针对循环和函数在项目使用过程中的一些更加有使用价值的操作进行分析和讲解

381

扫码关注云+社区