笨办法学Python(十九)
习题 19: 函数和变量
函数这个概念也许承载了太多的信息量,不过别担心。只要坚持做这些练习,对照上个练习中的检查点检查一遍这次的联系,你最终会明白这些内容的。
有一个你可能没有注意到的细节,我们现在强调一下:函数里边的变量和脚本里边的变量之间是没有连接的。下面的这个练习可以让你对这一点有更多的思考:
- def cheese_and_crackers(cheese_count, boxes_of_crackers):
- print "You have %d cheeses!" % cheese_count
- print "You have %d boxes of crackers!" % boxes_of_crackers
- print "Man that's enough for a party!"
- print "Get a blanket.\n"
- print "We can just give the function numbers directly:"
- cheese_and_crackers(20, 30)
- print "OR, we can use variables from our script:"
- amount_of_cheese = 10
- amount_of_crackers = 50
- cheese_and_crackers(amount_of_cheese, amount_of_crackers)
- print "We can even do math inside too:"
- cheese_and_crackers(10 + 20, 5 + 6)
- print "And we can combine the two, variables and math:"
- cheese_and_crackers(amount_of_cheese + 100, amount_of_crackers + 1000)
通过这个练习,你看到我们给我们的函数 cheese_and_crackers 很多的参数,然后在函数里把它们打印出来。我们可以在函数里用变量名,我们可以在函数里做运算,我们甚至可以将变量和运算结合起来。
从一方面来说,函数的参数和我们的生成变量时用的 = 赋值符类似。事实上,如果一个物件你可以用 = 将其命名,你通常也可以将其作为参数传递给一个函数。
你应该看到的结果
你应该研究一下脚本的输出,和你想象的结果对比一下看有什么不同。
加分习题
- 倒着将脚本读完,在每一行上面添加一行注解,说明这行的作用。
- 从最后一行开始,倒着阅读每一行,读出所有的重要字符来。
- 自己编至少一个函数出来,然后用10种方法运行这个函数。
习题练习
1.
- def cheese_and_crackers(cheese_count, boxes_of_crackers): #定义含两个形参的 cheese_and_crackers 函数
- print "You have %d cheeses!" % cheese_count #缩进部分为函数主体部分
- print "You have %d boxes of crackers!" % boxes_of_crackers
- print "Man that's enough for a party!"
- print "Get a blanket.\n"
- print "We can just give the function numbers directly:"
- cheese_and_crackers(20, 30) #调用 cheese_and_crackers 函数,直接用数值作为实参
- print "OR, we can use variables from our script:"
- amount_of_cheese = 10 #将数值赋予变量
- amount_of_crackers = 50
- cheese_and_crackers(amount_of_cheese, amount_of_crackers) #调用函数,变量作为函数实参
- print "We can even do math inside too:"
- cheese_and_crackers(10 + 20, 5 + 6) #表达式作为函数实参,python优先计算表达式的值
- print "And we can combine the two, variables and math:"
- cheese_and_crackers(amount_of_cheese + 100, amount_of_crackers + 1000) #变量和表达式混合作为实参
2.
函数调用时赋给实参的四种方式:
1.直接将数值作为函数实参。
2.数值赋值给变量,再让变量作为函数实参。
3.在调用函数时用表达式做函数实参。
4.变量和表达式的混合模式做函数实参。
请仔细阅读常见问题回答,其中涉及的全局变量在这里不适合介绍,以后遇到实例再讲。
请注意,作者也提到,在你使用raw_input时要使用,int做类型转换,因为,raw_input函数处理的结果是字符而不是一个数值,字符和数值在计算机中的存储方式是不同的,参见ASⅡ码表。
笨办法学Python(十九)的更多相关文章
- 笨办法学Python(九)
习题 9: 打印,打印,打印 # Here's some new strange stuff, remember type it exactly. days = "Mon Tue Wed T ...
- 笨办法学 Python (Learn Python The Hard Way)
最近在看:笨办法学 Python (Learn Python The Hard Way) Contents: 译者前言 前言:笨办法更简单 习题 0: 准备工作 习题 1: 第一个程序 习题 2: 注 ...
- 笨办法学 Python (第三版)(转载)
笨办法学 Python (第三版) 原文地址:http://blog.sina.com.cn/s/blog_72b8298001019xg8.html 摘自https://learn-python ...
- 笨办法学Python - 习题1: A Good First Program
在windows上安装完Python环境后,开始按照<笨办法学Python>书上介绍的章节进行练习. 习题 1: 第一个程序 第一天主要是介绍了Python中输出函数print的使用方法, ...
- 笨办法学python 13题:pycharm 运行
笨办法学python 13题 代码: # -*- coding: utf-8 -*- from sys import argv # argv--argument variable 参数变量 scrip ...
- 笨办法学python - 专业程序员的养成完整版PDF免费下载_百度云盘
笨办法学python - 专业程序员的养成完整版PDF免费下载_百度云盘 提取码:xaln 怎样阅读本书 由于本书结构独特,你必须在学习时遵守几条规则 录入所有代码,禁止复制粘贴 一字不差地录入代码 ...
- 笨办法学Python 3|百度网盘免费下载|新手基础入门书籍
点击下方即可百度网盘免费提取 百度网盘免费下载:笨办法学Python 3 提取码:to27 内容简介: 本书是一本Python入门书,适合对计算机了解不多,没有学过编程,但对编程感兴趣的读者学习使用. ...
- 《笨办法学 Python(第四版)》高清PDF|百度网盘免费下载|Python编程
<笨办法学 Python(第四版)>高清PDF|百度网盘免费下载|Python编程 提取码:jcl8 笨办法学 Python是Zed Shaw 编写的一本Python入门书籍.适合对计算机 ...
- 笨办法学python 第四版 中文pdf高清版|网盘下载内附提取码
笨办法学 Python是Zed Shaw 编写的一本Python入门书籍.适合对计算机了解不多,没有学过编程,但对编程感兴趣的朋友学习使用.这本书以习题的方式引导读者一步一步学习编 程,从简单的打印一 ...
- 《笨办法学Python 3》python入门书籍推荐|附下载方式
<笨办法学Python 3>python入门书籍免费下载 内容简介 本书是一本Python入门书,适合对计算机了解不多,没有学过编程,但对编程感兴趣的读者学习使用.这本书以习题的方式引导读 ...
随机推荐
- java 柱状图、折线图、饼状图
1.绘制柱状图: //BarChartTool工具类代码 package GUIview; import HibernateTool.HibernateTools; import ProductCla ...
- System.Collections.Generic.List<T> 与 System.Collections.ArrayList
[推荐] System.Collections.Generic.List<T> [原因] 泛型集合类List<T>在操作值类型的集合时可以不进行 装箱/拆箱 处理. 使得性能较 ...
- poj1094 拓扑排序(出度入度简单使用)
Sorting It All Out Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 37764 Accepted: 13 ...
- POJ 3734 Blocks(矩阵快速幂+矩阵递推式)
题意:个n个方块涂色, 只能涂红黄蓝绿四种颜色,求最终红色和绿色都为偶数的方案数. 该题我们可以想到一个递推式 . 设a[i]表示到第i个方块为止红绿是偶数的方案数, b[i]为红绿恰有一个是偶数 ...
- cf Permute Digits(dfs)
C. Permute Digits You are given two positive integer numbers a and b. Permute (change order) of the ...
- 数据分析之Anaconda安装
Anaconda概述 Anaconda是一个用于科学计算的Python发行版,支持 Linux, Mac, Windows系统,提供了包管理与环境管理的功能,可以很方便地解决多版本python并存.切 ...
- python 多线程概念
######多线程##### 什么是线程: 线程是操作系统能够进行运算调度的最小单位(程序执行流的最小单元).它被包含在进程之中,是进程中的实际运作单位. 一个进程中可以并发多个线程,每条线程并行执行 ...
- springMvc使用restful风格
转载:https://blog.csdn.net/weide_java/article/details/53793769 1,REST架构师一个抽象的概念,目前主要是基于HTTP协议实现,其目的是为了 ...
- spring espect XX but YY
注入和查找问题 HSF Consumer bean, 注入的是beanName='实际接口名', type='HSFSpringConsumerBean', 造成Autowire时查询出来的类型不匹 ...
- centos7-网络与防火墙常用命令
1.网络配置 vi /etc/sysconfig/network-scripts/ifcfg-ens33 BOOTPROTO="static" IPADDR=192.168.163 ...