《python语言程序设计基础》嵩天著-第4章程序练习题答案

本文记录了自学Python过程中第四章的程序练习,包括猜数游戏,统计不同字符个数,最大公约数计算,以及猜数游戏的改进版。在猜数游戏中,用户需猜0到9的整数,程序会告知猜测次数。字符统计部分,程序能区分英文字符、数字、空格和其他字符。最大公约数计算采用辗转相除法和更相减损术两种方法。猜数游戏续篇则增加了错误输入检查功能。
摘要由CSDN通过智能技术生成

练习题代码

正在看书自学中,贴出自己的作业,欢迎大家交流指正,一起进步~

4.1 猜数游戏

在程序中预设一个0~9之间的整数,用户通过键盘输入所猜的数,给出猜测结果,并且猜对是给出猜测总次数。

# 4.1
from random import randint
num = randint(0,9) # 也可以自己随便设置一个 num = 3
n = 1
while 1:
    a = eval(input("Guess a number from 0 to 9: "))
    if a < num:
        print("Too small.")
        n += 1
    elif a > num:
        print("Too large.")
        n += 1
    else:
        print("Congraduations! Guess {:d} time(s)." .format(n))
        break

结果

Guess a number from 0 to 9: 6
Too large.
Guess a number from 0 to 9: 3
Too small.
Guess a number from 0 to 9: 5
Too large.
Guess a number from 0 to 9: 4
Congraduations! Guess 4 time(s).

4.2 统计不同字符个数

用户从键盘输入一行字符,编写一个程序并统计其中的英文字符、数字、空格和其它字符的个数。

# 4.2
string = input("Please input a string contains number, char, \
space or other characters:\n")
num, char, spa, other = 0, 0, 0, 0
for i in string:
    if 'a' <= i <= 'z' or 'A' <= i <= 'Z':
  
### 回答1: 当然,我很乐意为您提供关于Python语言程序设计基础的信息。以下是第七答案: 第七:循环结构 1. 什么是循环结构? 循环结构是指在程序,多次执行相同或类似的一组指令的结构。在Python,循环结构主要有两种:for循环和while循环。 2. for循环和while循环的区别是什么? for循环用于遍历一个序列(如列表、元组、字符串等)或其他可迭代对象,每次迭代会取出序列一个元素进行处理。while循环则根据条件表达式的真假情况来反复执行代码块,直到条件不再满足为止。 3. for循环的语法是什么? for循环的语法如下: ``` for 变量 in 序列: 代码块 ``` 其,变量为循环变量,序列为被遍历的对象。每次循环时,变量会被赋值为序列一个元素,并执行代码块。 4. while循环的语法是什么? while循环的语法如下: ``` while 条件表达式: 代码块 ``` 其,条件表达式为一个布尔表达式,每次循环时都会被重新计算,只有在表达式为True时才会执行代码块。 5. 如何使用break和continue控制循环流程? break语句可以在循环内部终止循环,而continue语句可以跳过本次循环,继续执行下一次循环。它们的使用方法如下: ``` # 使用break语句终止循环 for 变量 in 序列: if 条件表达式: break # 其他代码块 # 使用continue语句跳过本次循环 for 变量 in 序列: if 条件表达式: continue # 其他代码块 ``` 6. 如何使用else语句与循环配合使用? 在循环结构,else语句可以与for和while循环配合使用。它的作用是在循环结束后执行一段代码块,但只有在循环没有被break语句终止时才会执行。具体使用方法如下: ``` # 使用for循环与else语句配合使用 for 变量 in 序列: # 循环代码块 else: # 在循环正常结束后执行的代码块 # 使用while循环与else语句配合使用 while 条件表达式: # 循环代码块 else: # 在循环正常结束后执行的代码块 ``` 希望这些抱歉,您的问题没有完整提出来。请重新提交完整的问题,我将尽力回答。 ### 回答2: 第七主要讲述了函的知识。函是一段可以反复调用的代码块,可以完成特定的功能。函的使用可以提高代码的复用性和开发效率。 第一题:函定义语法 函定义语法如下: ```python def function_name(parameters): """函文档字符串""" function_body return [expression] ``` 其,函名是由字母、字和下划线组成的标识符。参可以是位置参、默认参、关键字参和可变参。函文档字符串是用来描述函功能的字符串,可以通过函的__doc__属性来获取。函包含了具体的实现代码,可以通过return语句返回结果。 第二题:调用函 调用函的语法如下: ```python function_name(arguments) ``` 其,函名是需要调用的函名,arguments是函的参。函的返回值可以使用变量来存储,也可以直接使用。 第三题:函的参类型 函的参类型包括位置参、默认参、关键字参和可变参。 位置参:按照参顺序依次传递参,调用函时需要按照函定义时的参顺序传递参。 默认参:给参设置默认值,调用函时可以不传递这些参,使用默认值。 关键字参:根据参名称来传递参,调用函时可以不按照函定义时的参顺序传递参,而是按照参名来传递。 可变参:传递可变量的参,可以使用*args表示不带参名的可变参,使用**kwargs表示带参名的可变参。 第四题:函定义可变参的用法 函定义可变参的用法是通过*args和**kwargs来定义不定量的参。其,*args表示不带参名的可变参,可以使用for循环遍历获取参值;**kwargs表示带参名的可变参,可以使用字典的方式获取参值。 ```python def func(*args, **kwargs): for i in args: print(i) for key, value in kwargs.items(): print(key, value) ``` 第五题:函返回值 函可以使用return语句返回结果,返回值可以是单个值,也可以是列表、元组和字典等据结构。如果函没有return语句,则默认返回None。 ```python def add(a, b): return a + b result = add(1, 2) print(result) # 3 ``` 第六题:递归函的特点 递归函是指在函内部调用自身的函。递归函的特点如下: 1. 递归函必须有一个结束条件,否则会无限调用下去导致栈溢出。 2. 递归函的效率不如循环,因为每次调用函都需要保存函的信息,占用内存。 3. 递归函可以处理一些复杂的问题,尤其是与树、图相关的问题,其代码可读性和简洁性都很好。 第七题:Python的Lambda表达式 Lambda表达式是一种匿名函,可以在需要函对象的任何地方使用,它的语法如下: ```python lambda arguments: expression ``` 其,arguments为函的参,expression为函的返回结果。Lambda表达式的执行结果为一个对象,可以通过调用该函对象来获取结果。 ```python f = lambda x, y: x + y result = f(1, 2) print(result) # 3 ``` Lambda表达式通常用于函式编程的参传递,可以让我们更方便地定义简单的函。 ### 回答3: 第七主要讲解了函的概念、定义及其常见应用。本主要包括以下几个方面的内容: 1、函的定义和调用:函是一段代码的封装,可以通过函名来调用这段代码。在Python,定义一个需要用到关键字“def”,然后是函名和参列表,最后是函体。完成函的定义后,可以通过函名来调用这个函。 2、函的参传递:Python的参传递有两种方式,分别是值传递和引用传递。在值传递的情况下,函内对参的修改对外界是不可见的;在引用传递的情况下,函内对参的修改对外界也是可见的。 3、函的返回值:函可以通过return语句来返回一个值,并且可以在调用函的地方把这个返回值赋给一个变量。如果函没有显式地指定返回值,则默认返回None。 4、变量的作用域:Python的变量作用域主要有全局作用域和局部作用域。如果在函内部定义了一个变量,则它只在函内部有效,在函外部不能访问。而全局变量则可以在函内部和外部都可以访问。 5、内置函Python内置了很多函,它们可以直接使用。常见的内置函有print、input、len、range等。 除此之外,本还介绍了常见的高阶函,包括map、reduce、filter和lambda函等。这些函Python被广泛应用,在据处理、函式编程等方面发挥了重要作用。 此外,在本的课后习题,还有一些实践性较强的编程题目,可以帮助读者进一步巩固所学知识。通过掌握本的内容,读者可以更加深入地理解函的概念和应用,为以后的Python编程奠定扎实的基础
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值