习题23:更多更多的练习

代码如下

# coding: utf-8
__author__ = 'www.py3study.com'
def break_words(stuff):
    '''This function will break up words for us.'''
    words = stuff.split(' ')
    return words

def sort_words(words):
    '''Sorts the words.'''
    return sorted(words)

def print_first_word(words):
    '''Prints the first word after popping it off.'''
    word = words.pop(0)
    print(word)

def print_last_word(words):
    '''Prints the last word after popping it off.'''
    word = words.pop(-1)
    print(word)

def sort_sentence(sentence):
    '''Takes in a full sentence and returns the sorted words.'''
    words = break_words(sentence)
    return sort_words(words)

def print_first_and_last(sentence):
    '''Prints the first and last words of the sentence.'''
    words = break_words(sentence)
    print_first_word(words)
    print_last_word(words)

def print_first_and_last_sorted(sentence):
    """Sorts the words then prints the first and last one."""
    words = sort_sentence(sentence)
    print_first_word(words)
    print_last_word(words)

这次调用函数,换一种交互式的方法

进入到py文件的存放目录,我的在E盘下面的test目录

然后输入python回车进入交互式

怎么调用,结果如下

来逐行分析一下每一步实现的是什么

1 在第一行执行了import lianxi_23 ,和你之前做过的一样,import导入一个模块,而我们写的lianxi_23.py就是一个模块,注意导入模块的时候不需要加.py,直接写文件名即可

2 第二行创建了一个sentence字符串

3 第三行是调用了lianxi_23里面的break_words函数,去处理sentence字符串

后面的都是一些调用函数方法,这里就不啰嗦了,认真看每一行的代码,仔细体会具体的意思

常见问题

有的结果打印出来的结果是None ?

也许你的函数漏写了最后的return语句,仔细检测代码

运行时提示 SyntaxError: invalid syntax ?

这说明你在提示的那行有一个语法错误,可能是漏了半个括号或者引号,也可能是调用的方法写错

函数里的代码不是只在函数里有效吗?为什么words.pop(0)这个函数会改变words的内容?

这个问题有点复杂,不过在这里words是一个列表,你可以对它进行操作,操作结果也可以被保存下来,所以导致内容改变

函数里什么时候改用print,什么时候改用return?

print只是屏幕输出而已,一般用来试调结果正不正确,你可以让一个函数既print又return,当你明白这点后,你就明白这个问题其实没什么意义,如果你需要打印到屏幕,那就用print,如果想要返回值,那就使用return

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏企鹅号快讯

AJAX开发教程之$.ajax常用方法详解

AJAX 是一种与服务器交换数据的技术,可以在补充在整个页面的情况下更新网页的一部分。接下来通过本文给大家介绍ajax一些常用方法,大家有需要可以一起学习。 1...

34650
来自专栏iOS 开发杂谈

iOS RunTime之一:简介

Objective-C语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理。Objective-C是基于C语言加入了面向对象特性和消息转...

9910
来自专栏北京马哥教育

ansible之playbook功能简述

playbooks剧本简介 playbooks是ansible更为强大的配置管理组件,实现基于文本文件编排执行的多个任务,且多次重复执行。其是使用YAML(Ye...

41850
来自专栏java达人

为什么需要Spring Ioc

如果没有没有亲自做过一些项目,直接上手就学spring那样的框架,你可能会觉得莫名其妙,有java就够了呀,为什么要学习这么一个陌生的东西。框架其实是软件的半成...

32260
来自专栏GreenLeaves

JS模块加载系统设计V1

一、require模块 +function() { var path = location.protocol + "//" + loca...

21350
来自专栏xingoo, 一个梦想做发明家的程序员

Windows下elasticsearch插入数据报错!

  按照官方文档操作,但是windows下有些不同,它不认识单引号',因此如果这样操作,就会报错: C:\Users\neusoft>curl localhos...

206100
来自专栏张首富-小白的成长历程

Linux-四剑客-find-awk-grep-sed解释----未完结版

find - search for files in a directory hierarchy 搜索目录层次结构中的文件 用来在指定目录下面查找文件或目录,任...

23530
来自专栏salesforce零基础学习

salesforce lightning零基础学习(三) 表达式的!(绑定表达式)与 #(非绑定表达式)

20840
来自专栏小狼的世界

Taints 与 Tolerations

节点亲和性是描述Pods如何分配到一个或一组节点的策略,与之相反 Taints 描述节点拒绝一个或一组Pods的策略。其实现原理为首先通过kubectl tai...

14210
来自专栏pangguoming

Python相对、绝对导入浅析

这篇文章从另外一个不同的视角来分析一下Python的import机制,主要的目的是为了搞懂import中absolute、relative import遇到的几...

45670

扫码关注云+社区

领取腾讯云代金券