《Python⼊门经典以解决计算问题为导向的Python编程实
践》Lesson1
原书是英⽂版的“The Practice of Computing Using Python”,以下是我⾃⼰对后⾯习题的解答。难免会有错误,希望⼤家告诉我,我们⼀起来完善~~
math.hypot()的参数为两个数字(x,y),返回x与y的欧⽒距离。
习题 1
1.什么是程序?
程序应该是具有可读性的短⽂,它将在计算机上执⾏,从⽽解决某些问题。
2.Python是⼀种解释型语⾔。“解释”在上下⽂中是什么意思?
===============百度百科======================
计算机不能直接理解⾼级语⾔,只能直接理解,所以必须要把⾼级语⾔翻译成机器语⾔,计算机才能执⾏⾼级语⾔编写的程序。
翻译的⽅式有两种,⼀个是编译,⼀个是解释。两种⽅式只是翻译的时间不同。写的程序执⾏之前,需要⼀个专门的编译过程,把成为的⽂件,⽐如exe⽂件,以后要运⾏的话就不⽤重新翻译了,直接使⽤编译的结果就⾏了(exe⽂件),因为翻译只做了⼀次,运⾏时不需要翻译,所以编译型语⾔的程序执⾏效率⾼,但也不能⼀概⽽论,部分解释型语⾔的通过在运⾏时动态优化代码,甚⾄能够使解释型语⾔的性能超过编译型语⾔。
解释则不同,的程序不需要编译,省了道⼯序,解释性语⾔在运⾏程序的时候才翻译,⽐如解释性basic语⾔,专门有⼀个能够直接执⾏basic程序,每个语句都是执⾏的时候才翻译。这样每执⾏⼀次就要翻译⼀次,效率⽐较低。解释是⼀句⼀句的翻译。
编译型与解释型,两者各有利弊。前者由于程序执⾏速度快,同等条件下对系统要求较低,因此像开发操作系统、⼤型应⽤程序、等时都采⽤它,像C/C++、Pascal/Object Pascal(Delphi)等都是编译语⾔,⽽⼀些、服务器脚本及辅助开发接⼝这样的对速度要求不⾼、对不同系统平台间的兼容性有⼀定要求的程序则通常使⽤,如JavaScript、VBScript、Perl、Python、Ruby、MATLAB 等等。
但随着硬件的升级和设计思想的变⾰,编译型和解释型语⾔越来越笼统,主要体现在⼀些新兴的⾼级语⾔上,⽽解释型语⾔的⾃⾝特点也使得⼚商愿意花费更多成本来优化,解释型语⾔性能超过也是必然的。
==============================================
Python Shell解释器每次读取⼀⾏代码并逐⾏进⾏解释。这意味着可以在Python Shell中将代码⼀次性输⼊,然后每次只执⾏⼀条语句。“解释”就是翻译,执⾏的意思。
3.Python中的注释是什么?如何表⽰注释?注释的作⽤是什么?
出现在该⾏“#”符号后的任何内容都被忽略——注释。它可以增加程序的可读性。
4.Python中的命名空间是什么?
linux启动图形化界面命令既是Python中名字列表及其关联的值。
5.提⽰输⼊⼀个数字,它加2,乘3,减6,再除3,最后得到的应该还是这个数。
#-*-coding:gbk-*-
#判断⽤户输⼊的是否是数字
def isNum(x):
try:
float(eval(x))
except:
print "Your input is not a number!"
return False
return True
while True:
inputNumber=raw_input("Please input a number you like:")
if isNum(inputNumber):
break
inputNumber=eval(inputNumber)
if type(inputNumber)==type(1):
inputNumber=int(inputNumber)
elif type(inputNumber)==type(1.1):
inputNumber=float(inputNumber)
x1=inputNumber+2
print "The number plus 2 is",x1
下列关于ascii编码的叙述正确的是x2=x1*3
print "Then multiply 3 is",x2
x3=x2-6
print "Then minus 6 is",x3
x4=x3/3
print "Finally divided by 6 is",x4
if x4==inputNumber:
print "The final result is the number itself!"
6.童谣。。。
#-*-coding:gbk-*-
gotomarket=[
["man",1],
["wives","wife",7],
["bags","bag",7],
["cats","cat",7],
["kitties","kitty",7]
]
total=0
things=0
for i in range(len(gotomarket)):
if i==0:
print "There is a",gotomarket[i][0],"go to a market,"
things+=1
function of
elif i==1:
print "having",gotomarket[i][2],gotomarket[i][0],","
things*=gotomarket[i][2]
else:
print "with each",gotomarket[i-1][1],"having",gotomarket[i][2],gotomarket[i][0],"," things*=gotomarket[i][2]
total+=things
print "There are",total,"things and people going to the market!"
7.⽤Turtle Graphics⼯具画个六⾓星
#-*-coding:gbk-*-
#六⾓形内⾓和720,⼀个⾓120,
#所以六⾓星⼀个⾓是60度,所以海龟要右转120度,⾛50⽶再左转60度
import turtle
for i in range(6):
turtle.right(120)
turtle.forward(50)
turtle.left(60)
turtle.forward(50)
服务器安装docker8.关于空⽩:书本P29
9.
(a)8
(b)myInt+=3
10.2.0
11.表达式和语句:书本P28
语句的副作⽤:在执⾏语句的时候会发⽣⼀些变化。
例如,x=5,没有返回值,但是x确实被赋值了5.
12. 0
(a)21
(b)30-(3**2)+(8/(3**2))*10
14.
(a)256
(b)256
(c)64
因为**运算符结合就是从右向左的【我之前还算错了。。。】重写(c):(2*2)**3
15.
(a)浮点数
(b)浮点数类型的有意义;整数类型会丢失信息
16.
myInput=raw_input("Please input:")
print str(myInput)
print int(myInput)
print float(myInput)
字符串类型
mynum=raw_input("Please input a number:") mynum=int(mynum)
print 0 if mynum%2==0 else 1
18.
(2+3)*5
25
19.
1公顷=10 000平⽅⽶
1cm=0.01m
1升(公升)=0.001⽴⽅⽶
volumn_m3=10000*0.01
volumn_l=volumn_m3/0.001
100000.0
defillama20.
and=4#SyntaxError
y=2/0#ZeroDivisionError
x=float("a")#ValueError
y=z+1#NameError
import math
x=math.sin()#TypeError
"abc"*"ab"#TypeError
21.
//
#取整除,返回商的整数部分
4/3.0=1.33333
4//3.0=1.0
x|y
#按位或
x^y
#按位异或
x&y计算机入门自学教程python
#按位与
~x
#按位取反
x<<y,x>>y
#x向左或向右移y位
22.
#-*-coding:gbk-*-
def Cal1(a,b,c):
return a+b*c
def Cal2(a,b,c):
return (a+b)*c
lst=[]
for i in range(-100,101):
for j in range(-100,101):
for k in range(-100,101):
if Cal1(i,j,k)==Cal2(i,j,k) and i!=j and j!=k and i!=k: lst.append([i,j,k])
print lst
print len(lst)#79401个结果
23.{},[] 没有效
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论