《Python语言程序设计基础》嵩天著-第2章程序部分练习题答案

《Python语言程序设计基础》嵩天著-第2章程序部分练习题答案


Python课上的作业。
贴到这里,供大家参考哦~
欢迎交流指正,共同进步,欸嘿!
没有把全部练习题写完,仅写了要求的作业。
至于运行结果,大家可以自己去试试
既然把第四章的作业贴上来了,
那就随便加上前几章 的作业,哈哈哈

2.11思考与联系 画同心圆靶盘

import turtle as t
try:
    t.home()
except:
    t.home()
t.pencolor("red")
t.pensize(2) # 以上为画笔参数的设置
for i in range(1,9): # 循环函数
    t.up() 
    t.goto(0,-10*i) # 去坐标(0,-10*i)
    t.down() 
    t.circle(10*i) #画半r = 20+10*i的圆
t.done()

程序练习题 2.1 方法一

print("请输入温度值:")
Tempstr = eval("input("")") #可以直接提取input,没有输入要求限制
if Tempstr[-1] in ['f','F']:
    C = (eval(Tempstr[0:-1])-32)/1.8
    print("结果是{:.0f}C".format(C))
elif Tempstr[-1] in ['c','C']:
    F = 1.8*eval(Tempstr[0:-1])+32
    print("结果是{:.0f}F".format(F))
else:
    print("输入格式错误")

程序练习题 2.1 方法二

#方法二:
TempStr=input("请输入符号:") # 分离单位和数值
x=eval(input("请输入温度值:")) #用eval函获得数值的变量
if TempStr in ['F','f']:
    C=(x-32)/1.8
    print("转换后的温度是{:.0f}C".format(C))
elif TempStr in ['C','c']:
    F=1.8*x+32
    print("转换后的温度是{:.0f}F".format(F))
else:
    print("输入格式错误!")

程序练习题 2.2 汇率兑换程序

Money = input('''目前仅支持人名币(Y)与美元(D)兑算,
请输入您需要用于兑换的货币数值及类型:''')
if Money[-1] in ["y","Y"]:
    D = (eval(Money[0:-1]))/6
    print(Money[0:-1]+"人民币可兑换{:.2f}美元".format(D))
elif Money[-1] in ["D","d"]:
    Y = (eval(Money[0:-1]))*6
    print(Money[0:-1]+"美元可兑换{:.2f}人民币".format(Y))
else:
    print("输入格式错误")

程序练习题 2.3 七彩蟒蛇

import turtle as t
def drawsnake(rad,angle,length,):  
    t.seth(-40)
    C = ["grey","red","green","yellow","blue"]
    for i in range(length):
        t.pencolor(C[i])
        t.circle(rad,angle)
        t.circle(-rad,angle)
    t.circle(rad,angle/2)
    t.pencolor("violet")
    t.fd(40)
    t.circle(16,180)
    t.pencolor("black")
    t.fd(40*2/3)
t.setup(650,350,0,0)
t.shape("turtle")
t.up()
t.fd(-250)
t.down()
t.pensize(25)
drawsnake(40,80,5)
t.done()

程序练习题 2.4 绘制三角形

import turtle as t
try:
    t.home
except:
    t.home
t.setup(750,500,100,100)
t.goto(-50,0)
t.pensize(10)
t.pencolor("blue")
for i in range(1,4):#利用左右角度进行循坏
    t.fd(100)
    t.seth(120*i)
t.done()

程序练习题 2.5 叠边等边三角形 方法一

分开画三个三角形

import turtle as t 
try:
    t.home
except:
    t.home
t.setup(750,500,100,100)
t.goto(0,0)
t.pensize(10)
t.pencolor("red")
for i in range(1,3): # 画同一串的三角形
    t.fd(100)
    t.seth(120)
    t.fd(100)
    t.seth(-120)
    t.fd(100)
    t.seth(0)
    t.up()
    t.goto(-50*i,-i*50*(3**0.5))
    t.down() 
t.up() # 画非同一串的三角形
t.goto(50,-50*3**0.5)
t.down()
t.fd(100)
t.seth(120)
t.fd(100)
t.seth(-120)
t.fd(100)
t.done()

程序练习题 2.5 叠边等边三角形 方法二

画一个大一个小

import turtle as t
try:
    t.home
except:
    t.home
t.setup(750,500,100,100)
t.pensize(5)
t.pencolor("blue")
t.fd(200)
t.seth(120)
t.fd(200)
t.seth(-120)
t.fd(200)
t.up()
t.goto(150,50*3**0.5)
t.down()
t.fd(100)
t.seth(120)
t.fd(100)
t.seth(0)
t.fd(100)
t.done()

程序练习题 2.6 无角正方形

import turtle as t
t.pensize(10)
t.pencolor("blue")
t.up()
t.goto(-100,-100)
t.down()
for i in range(1,5):
    t.fd(80)
    t.left(45)
    t.up()
    t.fd(40*2**0.5)
    t.down()
    t.seth(90*i)
    t.fd(80)
t.done()

程序练习题 2.7 六角形

我觉得这六角形不太正,而且这方法好笨,
如果有其他好方法可以评论区提点我

import turtle as t
t.pensize(2)
t.pencolor("blue")
t.up()
t.goto(-120,-60*3**0.5)
t.down()
for i in range(1,4): #利用绝对角度进行循坏
    t.fd(240)
    t.seth(120*i)
t.up()
t.goto(-120,30*3**0.5)
t.down()
t.seth(0)
for i in range(1,4): #利用绝对角度进行循坏
    t.fd(240)
    t.seth(-120*i)
t.done()

程序练习题 2.8 正方形螺旋线

import turtle as t
t.color("blue")
for i in range(100): # 第N+1次长度是第N次的2倍
    t.fd(2*i)
    t.left(90)
t.done()

码字不易,就这样叭

  • 22
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
程序设计基础练习题1一、选择题(每题1分,共30分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项的标记写在题干后的括号内。1.以下的选项中能正确表示Java语言中的一个整型常量的是( )。A) 12. B) -20 C) 1,000 D) 4 5 62.以下选项中,合法的赋值语句是( )。A) a = = 1; B) ++ i; C) a=a + 1= 5; D) y = int ( i );3.若所用变量都已正确定义,以下选项中,非法的表达式是( )。A) a != 4||b==1 B) 'a' % 3 C) 'a' = 1/2 D) 'A' + 324.若有定义int a = 2;则执行完语句a += a -= a * a; 后,a的值是( )。A) 0 B) 4 C) 8 D) -45.设有定义语句int a[]={66,88,99}; 则以下对此语句的叙述错误的是( )。A) 定义了一个名为a的一维数组 B) a数组有3个元素C) a数组的下标为1~3 D)数组中的每个元素是整型6.若a和b均是整型变量并已正确赋值,正确的switch语句是( )。A) switch(a+b); B) switch( a+b*3.0 ){ ...... } { ...... }C) switch a D) switch ( a%b ){ ...... } { ...... }7.下列语句序列执行后,x 的值是( )。int a=3, b=4, x=5;if( ++aA) 5 B) 3 C) 4 D) 68.下列语句序列执行后,k 的值是( )。int i=6, j=8, k=10, n=5, m=7;if( iA) 9 B) 10 C) 11 D) 129.下列语句序列执行后,r 的值是( )。char ch='8'; int r=10;switch( ch+1 ){ case '7': r=r+3;case '8': r=r+5;case '9': r=r+6; break;default: ;}A) 13 B) 15 C) 16 D) 1010.下列语句序列执行后,j 的值是( )。int j=0;for( int i=3; i>0; i-- ) j+=i;A) 3 B) 4 C) 5 D) 611.下列语句序列执行后,j 的值是( )。int j=9, i=6;while( i-- >3 ) --j;A) 5 B) 6 C) 7 D) 812.下列语句序列执行后,i的值是( )。int i=10;do { i-=2; } while( i>6 );A) 10 B) 8 C) 6 D) 413.为了区分重载多态中同名的不同方法,要求( )。A) 采用不同的形式参数列表 B) 返回值类型不同 C) 调用时用类名或对象名做前缀 D) 参数名不同14.定义主类的类头时可以使用的访问控制符是( )。A) private B) protected C) public D) private protected15.下列整型的最终属性 i 的定义中,正确的是( )。A) static final int i=100; B) final i;C) static int i; D) final float i=1.2f; 16.设 x,y 均为已定义的类名,下列声明对象x1的语句中正确的是( )。A) public x x1= new y( ); B) x x1=x( ); C) x x1=new x( ); D) int x x1;17.下列方法定义中,正确的是( )。A) int x( int a,b ) B) double x( int a,int b){ return (a-b); } { int w; w=a-b; }C) double x( a,b ) D) int x( int a,int b){ return b; } { return a-b; }18.能构成多分支的语句是( )。A) for 语句 B) while 语句 C) switch 语句 D) do -
### 回答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编程奠定扎实的基础
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值