习题答案

作业四按要求编写程序(任选三题)

1.编写一个从 1 加到 end 的当型循环。变量 end 的值由键盘输入。假如输入end

的值为6,则代码输出的结果应该是21,也就是1+2+3+4+5+6 的结果(不要用

sum作为变量,因为它是内置函数)。

1. a = input()

2. b=int(a)

3. total = 0

4. for i in range(b+1):

5.      total = i+total

6. print(total)


2、从键盘输入一个整数,判断该数字能否被 2 和 3 同时整除,能否被 2 整除,能否被 3 整除,不能被 2 和 3 整除。输出相应信息。


a = input()

b=int(a)

if b%2==0 and b%3==0:

    print('该数字能被 2 和 3 同时整除')

elif b%2==0:

    print('该数字能被 2 整除')

elif b%3==0:

    print('该数字能被 3 整除')

else :

     print('该数字不能被 2 和 3 整除')


3、 一个数如果恰好等于它的因子之和,这个数就称为“完数”,例如, 6 的因子为1、2、3,而6=1+2+3,因此6 是“完数”。编程序找出 1000 之内的所有完数,并按下面的格式输出其因子:6its factors are 1, 2, 3

    for iin range(1001): if i==0: continue s = 0 for j in range(i): if j==0: continue ifi%j==0: s=s+j if s==i: print('{} its factors are '.format(i),end='') for j inrange(i): if j == 0: continue if i % j == 0: print(j,end=' ') print('\n')



4、打印出所有的“水仙花数”,所谓“水仙花数”是指一个 3 位数,其各位数字立方和等于该数本身。例如, 153 是一个水仙花数,因为 153=13+53+33。

   for i in range(1000):

   if i<100:

        continue

   s = 0

   a = int(i//100)

   b = int(i//10%10)

   c = int(i%10)

   s = a**3+b**3+c**3

   if s == i:

        print("{}是水仙花数".format(i))


5.假设x,y是(-1,1)中的两个随机数字(服从正态分布):

(1)当x²+y²>1时,返回x,y的值

(2)创建一个列表,其中每个元素对应为\sqrt{x*ln(a)} 的值, 且 a=x²+y².

import random

import math

def randomXY():

    x= random.uniform(-1,1)

    y= random.uniform(-1,1)

if(x*x+y*y>1):

  return randomXY()

else:

    return (x,y)

def ans():

list = []

for i in range(0,100):

    xy = randomXY()

    x = xy[0]

    y = xy[1]

    a = x*x+y*y

    temp = math.sqtr(x*math.log(a,math.e))

    list.append(temp)

return list

# print(ans())

for x in ans():

print(x)


作业五

第四题选作

一、 输出 1~100 之间不能被 7 整除的数,每行输出 10 个数字,要求应用字符串格式化方法(任何一种均可) 美化输出格式。 输出效果为:

j=0

for i in range(101):  #循环

    if i>0 and i % 7 == 0: #如果能整除7,则再执行循环

        continue

    elif i>0:    #如果大于0并且不能被7整除,输出;

        print("{:3d}".format(i),end=' ')

        j += 1  #j用来控制每行输出是否是10个

        if j % 10 == 0:

            print('\n')

            j = 0

    else:

        continue;


二、创建文本文件FarewellCambridge.txt。内容为:

Very quietly I take my leave

As quietly as I came here;

Quietly I wave good-bye

To the rosy clouds in the western sky.

The golden willows by the riverside

Are young brides in the setting sun;

Their reflections on the shimmering waves

Always linger in the depth of my heart.

The floating heart growing in the sludge

Sways leisurely under the water;

In the gentle waves of Cambridge

I would be a water plant!

That pool under the shade of elm trees

Holds not water but the rainbow from thesky;

Shattered to pieces among the duckweeds

Is the sediment of a rainbow-like dream?

To seek a dream? Just to pole a boatupstream

To where the green grass is more verdant;

Or to have the boat fully loaded withstarlight

And sing aloud in the splendor ofstarlight.

But I cannot sing aloud

Quietness is my farewell music;

Even summer insects heap silence for me

Silent is Cambridge tonight!

并用写字板查看(注意:直接将上述诗句拷贝到程序中,不需要自己再次录入)。


file =open('C:/Users/uestc/Desktop/hanzhengqiang.txt','w')

#在桌面新建一个韩正强.txt文本文档,并且是写的模式

#在文本中写入文字:

file.write('''Very quietly I take my leave

As quietly as I came here;

Quietly I wave good-bye

To the rosy clouds in the western sky.

The golden willows by the riverside

Are young brides in the setting sun;

Their reflections on the shimmering waves

Always linger in the depth of my heart.

The floating heart growing in the sludge

Sways leisurely under the water;

In the gentle waves of Cambridge

I would be a water plant!

That pool under the shade of elm trees

Holds not water but the rainbow from the sky;

Shattered to pieces among the duckweeds

Is the sediment of a rainbow-like dream?

To seek a dream? Just to pole a boat upstream

To where the green grass is more verdant;

Or to have the boat fully loaded with starlight

And sing aloud in the splendor of starlight.

But I cannot sing aloud

Quietness is my farewell music;

Even summer insects heap silence for me

Silent is Cambridge tonight!''')



 对于上一题建立的文本文件,使用read()读文件,并在屏幕上显示。

1.  file = open('C:/Users/uestc/Desktop/hanzhengqiang.txt','r')

2.  #在桌面打开一个韩正强.txt文本文档,并且是读的模式

3. #读取文件,并且输出:

4.  s=file.read()

5.  print(s)


根据给定的文本文件words.txt(可将该文件存放在任意目录,注意打开文件时要加入正确的路径)编写函数loadWords(),words.txt包含若干小写英文单词。要求:

1) 读入该文件,统计并输出单词的个数

2) 返回单词列表(注意:指返回单词列表即可,不要在屏幕上显示)


import re

#统计单词个数:

def count_words(file_path):

    with open(file_path) as file:

        text = file.read()

        words = re.findall(r'[a-zA-Z]+', text)

        count = len(words)

        return count

print(count_words('C:/Users/uestc/Desktop/words.txt'))




作业七

一、编写函数devide(x, y),x为被除数,y为除数。要求考虑异常情况的处理。

1、被零除时,输出"division by zero! ";

2、类型不一致时,强制转换为整数再调用本函数;

3、 若没有上述异常则输出计算结果。


def test(password, earning, age):

   #assert 1<0

   assert password[0] not in ['0','1','2','3','4','5','6','7','8','9']

   assert int(earning)>=0 and int(earning)<=20000

   assert int(age)>=18 and int(age)<=70

   return True

print(test('as','11','30'))



二、 编写函数test(password,earning, age)用于检测输入错误。要求输入密码password第一个符号不能是数字,工资earnings的范围是0—20000,工作年龄的范围是18—70。使用断言来实现检查,若三项检查都通过则返回True。


def test(password, earning, age):

    #assert 1<0

    assert password[0] not in['0','1','2','3','4','5','6','7','8','9']

    assert int(earning)>=0 andint(earning)<=20000

    assert int(age)>=18 and int(age)<=70

   return True


三、使用tkinter库完成下列程序

1、编程实现如下GUI(只显示,没有回调函数)

import tkinter

root =tkinter.Tk()

root.title('tk')

theLabel=tkinter.Label(root,text='Welcome to Python Tkinter')

theLabel.pack()

root.geometry('500x300+300+300')

button = tkinter.Button(root,text='Click Me')

button.pack()

root.mainloop()


2、 编程响应用户事件。“OK”按钮前景为红色,按下“OK”按钮显示"OK button is clicked",”Cancel“按钮背景为黄色,按下”Cancel“按钮显示"Cancel button is clicked"。

import tkinter

def ok_on_click():

    print('OK button is clicked')

def cancel_on_click():

    print('Cancel button is clicked')

root = tkinter.Tk()

root.title('zy')

label = tkinter.Label(root)

buttonok = tkinter.Button(root,text='OK',fg='red')

buttonok['command']=ok_on_click

label.pack()

buttonok.pack()

root.geometry('500x300+300+300')

buttoncancel =tkinter.Button(root,text='Cancel',bg='yellow')

buttoncancel['command']=cancel_on_click

label.pack()

buttoncancel.pack()

root.mainloop()


四、 使用Turtle库完成下列程序

1、绘制一个红色的五角星图形,如图所示。

import  turtle as tk

tk.fillcolor("red")

tk.begin_fill()

while True:

    tk.forward(200)

    tk.right(144)

    if abs(tk.pos()) < 1:

            break

tk.end_fill()

input()


2、螺旋线绘制(每一圈是四个线段组成,一共绘制100个线段)。绘制一个螺旋线的图形,如图所示。

1. importturtle

2. importtime

3.turtle.pensize(1)

4. for x in range(100):

5.  turtle.forward(x)

6.  turtle.left(90)

7. time.sleep(100)



作业十

一、编写一个程序,以2位数字,X,Y作为输入,生成一个二维数组。数组的第i行和第j列中的元素值应该是i*j。

注意:i= 0,1 . .,X - 1;    j = 0,1,­-Y-1。

例子假设程序有以下输入:3、5

则程序输出为:[[0,0,0,0,0],[0,1,2,3,4],[0,2,4,6,8]]

提示:注意:如果要为问题提供输入数据,应该假设它是一个控制台输入,以逗号分隔。


print('请输入两个数字:')

input_str =input()

dimensions=[int(x) for x in input_str.split(',')]

rowNum=dimensions[0]

colNum=dimensions[1]

multilist = [[0 for col in range(colNum)] for row in range(rowNum)]

for row in range(rowNum):

    for col in range(colNum):

        multilist[row][col]= row*col

print (multilist)





Python作业 | Zander`s blog (zanderwang.com)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,924评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,781评论 2 378
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,813评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,264评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,273评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,383评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,800评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,482评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,673评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,497评论 2 318
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,545评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,240评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,802评论 3 304
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,866评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,101评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,673评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,245评论 2 341

推荐阅读更多精彩内容

  • 塞浦路斯护照,入籍塞浦路斯,塞浦路斯永居,办理塞浦路斯移民、快速入籍 塞浦路斯护照、居留,保加利亚护照、居留,马耳...
    Frank来阅读 151评论 0 0
  • 人要有点自己的爱好,最好是高雅的,可以陶冶情操的,可以琴棋书画,也可以诗酒茶。 最近家里的小女迷上了画画,动漫人物...
    林子夕的小屋阅读 166评论 0 0
  • 《脑力赋能》读书笔记 我们终生忙碌,长时间工作,很难有时间顾及自己,因此健康受到损害。同时,我们也很少有时间顾及别...
    小北bling阅读 1,123评论 0 0
  • 本周自学活法,参与新事业的动机每晚自问自答,和为社会为世人勇于自我牺牲两个小结,讲述了稻盛和夫老先生为国民做贡献的...
    张伟99阅读 234评论 0 0
  • 【2】 海子的温情在这首诗中间变成了一种对于人们的大爱。这份爱是从哪里来的?或许是记忆中的外套那种沉甸甸的时光感,...
    quiteafew阅读 110评论 0 0