第4章程序的控制结构
4.1 程序的基本结构
[4.1]: 正确。
[4.2]: 错误。
[4.3]: A
[4.4]: B
4.2 程序的分支结构
[4.5]: 错误。
[4.7]: 错误。
[4.8]: B
[4.9]: 输出Grade为D,不符合逻辑。因为输入满足多分支第一个条件,执行后跳出了整个多分支。应该将成绩从高到低作为判断条件。
4.3 实例5:身体质量指数BMI
[4.10]: 因为没必要,上一个条件的上限恰好是下一个条件的下限,各个区间是相连的。不存在冲突。
[4.11]: 正确。这个语句的运算顺序是24<=(28<25), 其中28<25的运算结果为False,然后计算24<=False,相当于计算24<=0,输出False。
[4.12]: 语句换行,表示下一行与上一行是同一行语句。
4.4 程序的循环结构
[4.13]: 正确。
[4.14]: 错误。
[4.15]: 错误,死循环在维持系统运行方面有很重要的作用。
[4.16]: D
[4.17]: B
4.5 模块2:random库的使用
[4.18]:
(1) for i in range(10):
print(randint(0,100) )
(2) randrange(1,100,2)
(3) s ='abcdefghij'
for i in range(4):
print(s[randint(0,len(s)-1)])
python入门教程2(4) print(['apple', 'pear', 'peach', 'orange'][randint(0, 3)])
4.6 实例6:π的计算
[4.19]: DARTS = 10000000时,准确率比较高,结果是3.1420104。
[4.20]: 将第11句改为dist <= 2.0,这样无论xy怎样变化,它们的平方和始终小于2,结果也是一样的,虽然是错的。
[4.21]: (1) 蒙特卡罗搜索树。下过围棋的同学都知道棋手的水平取决于他能够推演的步数,专业棋手一般能推演十几步以上,然而这个看似简单的东西对早期计算机来说是个噩梦。因此在机器围棋领域,出现了一种算法叫蒙特卡罗搜索树,它就是运用了蒙特卡罗方法来缩小计算机的搜索范围。从而使计算机拥有与人类棋手匹敌的推演步数。
(2) 蒙特卡罗积分等。
4.7 程序的异常处理
[4.22]: try语句块中放置想要检测的部分;except语句块中放置想要捕获的异常,以及出现异常后的处理;else语句块中放置不出现异常时要执行的部分;finally语句块中放置无论如何都必须执行的部分,常用在使程序继续执行。
[4.23]:
1 2 3 try:
s = input() except Exception:
[4.24]: 使用if -else来判断用户输入的合规性。程序练习题
[4.1]:
1 2 3 4 5 6 7 8 9
10
11
12
13
14
15
16 from random import randint
num=randint(1,10)
tim=0
while 1:
try:
putnum=eval(input("请输入您猜测的数字:"))
tim+=1
if putnum > num:
print("遗憾!太大了")
elif putnum <num:
print("遗憾!太小了")
elif putnum==num:
print("预测{}次,你猜中了!".format(tim)) break
except:
print("输入有误!")
[4.2]:
1 2 3 4 5 6 stri=input("请输入您想要的字符串:") kong=0
alpha=0
chi=0
num=0
other=0
7 8 9
10
11
12
13
14
15
16
17
18
19 for i in stri:
if i == " ":
kong +=1
elif '0' <= i <= '9':
num+=1
elif i>=u'\u4e00' and i<=u'\u9fa5':
chi+=1
elif True == i.isalpha():
alpha+=1
else:
other+=1
print("您输入的字符串中有{}个空格,{}个数字,{}个中文,{}个英文字符,{}个其他字符".format(kong,num,chi,alpha,other))
[4.3]:
1 2 3 4 5 6 7 8 a,b=eval(input("请输入两个整数,中间用,隔开:"))
c=a*b
if a<b:
a,b=b,a
while False == (a in[0,1]):
b,a=a,b%a
c=c/b
print("最小公约数为:{},最大公倍数为:{}".format(b,c))
[4.4]:
1 2 3 4 5 6 7 8 9 from random import *
seed(100)
num=randint(0,100)
tim=0
while 1:initializes
try:
putnum=eval(input("请输入您猜测的数字:")) tim+=1
if putnum > num:
10
11
12
13
14axis 1和axis 0
15
16
17 print("遗憾!太大了")
elif putnum <num:
print("遗憾!太小了")
elif putnum==num:
print("预测{}次,你猜中了!".format(tim)) break免费学画画视频教程全集
except:
print("输入有误!")
[4.5]:
1 2 3 4 5 6 7 8 9
10
11
12
13
14
15
16
17
18
19 20 21 from random import *
import types
seed(100)
num=randint(0,100)
tim=0
while 1:
try:
putnum=eval(input("请输入您猜测的数字:"))
if type(putnum) == type(1):
tim+=1
if putnum > num:
print("遗憾!太大了")
elif putnum <num:
print("遗憾!太小了")
elif putnum==num:
print("预测{}次,你猜中了!".format(tim)) break
else:
print("输入内容必须为整数!")
except:
print("输入有误!")
[4.6]:
1 2 3 4 5 6 7 8 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 import random
times = eval(input("请输入你希望模拟的次数:"))
pick_first_n = 0
pick_change_n = 0
for i in range(times):
car = random.randint(0, 2) #生成哪个门后藏车
pick_first = random.randint(0, 2) #初始随机选一个
if pick_first == car: #如果直接选中,则初始选择正确,
pick_first_n 加 1,换选择一定不中
pick_first_n += 1
else: #如果初始选择没中,则主持人打开另一扇没车的门后,换选择一定中
pick_change_n += 1 #故 pick_change_n 加 1
pick_first_percent = pick_first_n / times #计算坚持不换选择的胜率
pick_change_percent = pick_change_n / times #计算换选择的胜率print("如果坚持初选,胜率为{:.2f}%".format(pick_first_percent * 100))
print("如果改变初选,胜率为{:.2f}%".format(pick_change_percent * 100))
labview做api服务器[4.7]:
1 2 3 4 5 6 7 TempStr = input('请输入带有符号的温度值:')
if TempStr[-1] in ['F','f']:
try:
C = (eval(TempStr[:-1]) - 32)/1.8编辑svg图片
print('转换后的温度是{:.2f}C'.format(C)) except:
print('您输入的温度格式有误!')
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论