课后习题1
0. Python3 虽然支持中文作为变量名,但有些大牛却不赞同这么做,你觉得他们的依据是什么?Zy9?"2- s &g`tiP(:nd,EUF0$_Z!^wLW3JrH 答:随着时代的发展,越来越多的编程语言不仅支持纯英文代码,还支持全球多数国家的语言开发,有些变态的甚至还能使用 Emoji 符号……但是,都没能流行起来!为什么呢?14_m% :;NlxZ<QRB$E]u7%Sst +
- 不利于与外国友人协同开发程序;
- 敲一个中文单词的步骤比英文单词要多;
- 习惯问题:以前的编程语言多数只支持纯英文,大家只能硬着头皮用英文;
- 就算是变量名支持中文了,但符号却还是只能使用英文的;
1. 以下哪个变量命名不正确?为什么?*x0}) EZ'xYyT^6&)Xf}?=+RmGqi:M ??(A)MM_520??(B)_MM520_??(C)520_MM??(D)_520_MM??(E)我M爱M你sFjeI+X$B: SwxM:70BDHUsQN_]ziR[5nv@1 答:只有 C 选项不正确,因为 Python 中的变量名不能以数字开头。
2. 你觉得下面代码出错的原因是什么?y4X>VD`HB U_3L>o[!IsB"KxR0|.(e'QZChXnS
- >>> print(x)
- Traceback (most recent call last):
- ??File "<pyshell#1>", line 1, in <module>
- ? ? print(x)
- NameError: name 'x' is not defined
答:Python 的变量在使用前虽然不需要声明,但仍然需要先对其进行赋值才能创建变量。这里报错的原因是 name 'x' is not defined,x 变量名未定义,言下之意就是访问了一个不存在(未创建)的变量。rm_n?x1+ Dp`2%QlJq=,3!;B6&|I](}at M '5p9Yc0>|)aG;+_d&}~OsS2 3. 你觉得下面代码中,print() 函数会打印什么内容?R0f]x2<) Q+V|L>pE#$5dYlA1bG*y23<x.7]8
- >>> x = 520
- >>> x = 880
- >>> print(X)
答:会报错。因为 Python 的变量名是区分大小写的,前面创建的是变量 x(小写),后面 print(X) 访问的是变量 X(大写),在 Python 看来是两个完全不同的名字,由于代码中并未创建变量 X(大写),所以直接对其进行访问会报错。jIArSl>F?g vKNZ~<F_MH.w6`D3,g[pE
?4. 你觉得下面代码中,print() 函数会打印什么内容?;?V_kN~I)" *pB1Kn'{Ay5]2Rjwh&JO
- >>> x, y, z = 3, 4, 5
- >>> x, y, z = y, x, z
- >>> print(x, y, z)
答:4 3 5。Powered by?https://fishc.com.cn g`8C" 6q$vl1J^.3!+nb)]7 解析:第一条语句x, y, z = 3, 4, 5的作用是同时给x、y、z三个变量名赋值;第二条语句x, y, z = y, x, z的实现效果相当于x, y, z三个变量的值(3, 4, 5)重新安排位置,顺序是y, x, z。5CmA|a7RpN 63zbOa8L|!^"JV`j@kl)4cYC>Pt{nx ' @Z`xFXgST{_.vbl%pGQ)Ur&ydKk 5. 你觉得下面代码中,print() 函数会打印什么内容?,V?oZ{chw M<TP2,YkHum>s0L%y-xBOi'RD@8*J|
- print("小甲鱼常说:"Good good study, day day up!"")
答:会报错。来自:https://fishc.com.cn j*<_C2:@f1&pVZOn#"9(kRo 解析:因为字符串总是需要成对编写,而 Python 对于字符串的识别是按“就近匹配”的原则,所以上面代码前后两对双引号里面的内容会被解析为字符串,但是中间的 Good good study, day day up! 会让 Python 很头疼……解决这个问题也不难,只需要混合使用单引号和双引号即可:dbmu:;), )4.",F[nI*<v0ws2gE~#>Bqc
- print('小甲鱼常说:"Good good study, day day up!"')
这样,Python 就不会误会啦!
6. 请编写代码:使用变量(dpy)存放每年的天数(365),变量(hpd)存放每天的小时数(24),变量(mph)存放每小时的分钟数,变量(spm)存放每分钟的秒数(60),最后计算一年有多少秒,并将结果存放到变量(spy)中。Ol:yz ovZCRh20E+_TtSK81wcB=`]WA)F[H 代码清单:Powered by?https://fishc.com.cn )~.s<1'8i#TnRB0oc[H,Aj`>6X"
- >>> dpy = 365
- >>> hpd = 24
- >>> mph = 60
- >>> spm = 60
- >>> spy = dpy * hpd * mph * spm
- >>> print(spy)
- 31536000
FwgEN05j!<qlzisC&?Qmb:vA]x7>I 7. 请编写代码:使用 input() 函数让用户录入姓名,然后将名字保存到变量(name)中,最后使用 print() 函数打印出来。>?h5bi^-V; +q`[y"c'o;7Rf4tDAJ>*MzNPpZ3nT 代码清单:版权属于:https://fishc.com.cn LIeZU+rlM0Jh#:1GO52VK
- >>> name = input("请输入您的名字:")
- 请输入您的名字:小甲鱼
- >>> print("你好", name, sep=",", end="!")
- 你好,小甲鱼!
课后习题2
0. 请问下面代码有没有毛病,为什么?<2`Iu dFU.*=~i5AHO2a;9%1)uxWM[cG^I:Q
- >>> input = "I love FishC.com"
- >>> print(input)
- I love FishC.com
答:有毛病。
?input
是一个内置函数(BIF)。
给变量命名,要避免与 Python 内部使用的名字冲突,不然这个内置函数就废掉了。不然
调用 input() 函数,Python 直接就报错了:
vG^VEO
|_0E"d=VGhotk<H!pf}5wy[@bs#
- >>> name = input("请输入你的名字:")
- Traceback (most recent call last):
- ??File "<pyshell#5>", line 1, in <module>
- ? ? name = input("请输入你的名字:")
- TypeError: 'str' object is not callable
8M<LfmcYEWD Xr3+#5`!{U(tG*
1. 请问下面代码为什么会出错,应该如何解决?
IcfyNOC|"
)&K2NP=1"Q'VY8,9c|Bb_jy5s]0d~!
- >>> print("C:\Users\goodb\Desktop")
- SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
答:这是由于在字符串中,反斜杠(\)会与其随后的字符共同构成转义字符。
为了避免这种不测情况的发生,我们可以在字符串的引号前面加上r,表示该字符串是一个原始字符串(不接受转义字符)。
OG)oZ^
OM=ls;6+P4f! xBV1$wp<iYI},tT>
- >>> print(r"C:\Users\goodb\Desktop")
- C:\Users\goodb\Desktop
8qyrUL<Icz~!D6J}&gO0ud
2. 如果要为一个函数写说明文档,那么你觉得应该使用哪种字符串比较合适?
o3<^EN
g%?J!]I9ziUxr[y2Co="Z#e|h}RP
答:三引号字符串,也就是长字符串合适。
因为大多数说明文档都不是一行字符串可以说清楚的,所以应该使用三引号字符串来实现。
71@?sk
)Q7I(!=}8N1v`F>_#pj:?$[b5i@2
【课外知识】
Powered by?https://fishc.com.cn
B0z[cj8,i3U) Dgh9e:65<lZE
如果在 IDLE 的交互模式中使用 help(obj) 函数,可以查看到 obj 对应的说明文档:
1w=h]
v+eS!Mr&s_"';9}o]C2lR
- >>> help(print)
- Help on built-in function print in module builtins:
- print(...)
- ? ? print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
- ? ?
- ? ? Prints the values to a stream, or to sys.stdout by default.
- ? ? Optional keyword arguments:
- ? ? file:??a file-like object (stream); defaults to the current sys.stdout.
- ? ? sep:? ?string inserted between values, default a space.
- ? ? end:? ?string appended after the last value, default a newline.
- flush: whether to forcibly flush the stream.
Z"u[5k:IrC#z7>J)^%]E 3. 请问是 '123' 大还是 256 大?'o8mE7w=4> "N~9X:n;PpMJRH]x[Cj# 答:在 Python 中,字符串类型的数据不能直接跟整数类型的数据做比较。={< X4QL )xFl;z*G2K"gQsp&Cy~8EjX b*)DF'7mA]H!;5plk=@&MRdY9:O2 4. 请写出下面几个表达式的结果。vX$%7zN P]l#ux<,OWNC`)Uj~YJh6Dtnbo0 A. '123' + 256版权属于:https://fishc.com.cn d:J)=7Rz%N(Ubu-s`w]*W0@vV 结果:报错,这是因为在 Python 中,字符串类型的数据不能直接跟整数类型的数据相加。FqX|LbP[ Ck)Wv15 ztFxA[{p?YQHnDGds;2 B. '123' + '256'Powered by?https://fishc.com.cn #q@[WxayNe?wo05TMBnLm+f_ 结果:'123456'这是由于字符串的拼接。Powered by?https://fishc.com.cn 6&Om9pPh_]z^?rg#0+7* C. '123' * 3Powered by?https://fishc.com.cn 2*v?~P>yV+kJ=M@|ZnbfAwp 结果:'123123123',这是由于字符串的复制。版权属于:https://fishc.com.cn (,yC0maW->R}qM43g[dH D. '123' - '12'Powered by?https://fishc.com.cn _fng;F0{RNwmZ-D.(!+tXUoSj 结果:报错,目前 Python 的字符串类型只支持加法拼接和乘法复制,不支持减法或者除法。
5. 打印一个九九乘法表。dKEB[F%~ !$}5`#a)oG=0PlxX'svVUAIzp6t]j 代码清单:来自:https://fishc.com.cn pGl{_c(7&wg86#.R'+YykAUWI|4
- >>> for i in range(1, 10):
- ...? ???for j in range(1, i+1):
- ...? ?? ?? ?print(i, "x", j, "=", i * j, end=' ')
- ...? ???print("\n")
声明:这些题目都来源于小甲鱼的论坛https://fishc.com.cn,发布到CSDN仅作为课程作业所需证明,不是分享,且已购买小甲鱼论坛终身会员。
|