例题
3.编写程序实现输入x,y,判断属于第几象限。
4.编写程序实现猜数字游戏,5次机会猜1-100内的数字。
5.编写程序实现打印9*9乘法表。
一、解析
第三个题目:通过输入x,y,利用流程控制语句if…elif…else判断你输入的x,y在第几象限。但要注意不在象限(在原点或者是在坐标轴上)的情况。这个题较为容易实现。
第四个题目:这个题是通过生成一个随机数,并让用户输入数字来和随机数作比较,可以利用while循环,range()函数等来实现流程控制。若相等则停止比较;若不相等,则继续比较,但要注意剩余次数减一,直到五次机会用完为止。
第五个题目:九九乘法表的格式是x*x=x的格式。
接下来,我们要做的是利用循环结构,使得数量发生变化。在最后,要对乘法表的形状进行限定。
首先我们先进行,对两个乘数进行循环。然后求积,最后输出,我们需要打印的是传统乘法表,那么我们就要对每一行进行切行操作,并且对所循环的进行限定。
二、详解
1.第三题
解法:
x = int(input("请输入x坐标:"))
y = int(input("请输入y坐标:"))
if(x > 0 and y > 0):
print("(%d,%d)在第一象限" %(x,y))
elif(x < 0 and y > 0):
print("(%d,%d)在第二象限" %(x,y))
elif(x < 0 and y < 0):
print("(%d,%d)在第三象限" %(x,y))
elif(x > 0 and y < 0):
print("(%d,%d)在第四象限" %(x,y))
elif(x == 0 and y == 0):
print("(%d,%d)在原点上" %(x,y))
else:
print("(%d,%d)在坐标轴上" %(x,y))
print("-"*20)
这是通过最基本的流程控制语句if…elif…else进行象限的判断,但要注意的是输入的坐标不在象限,而是在在坐标轴上的情况,所以在最后两个判断条件上,加上在原点和在坐标轴上的情况,使得输入的坐标点的坐落情况更为完备。
演示过程如下
请输入x坐标:3
请输入y坐标:2
(3,2)在第一象限
--------------------
2.第四题
第一种解法:
import random #导入库
secret = random.randint(1,101) #1-100随机数
i = 1 #计数器
#使用while循环
while(i <= 5):
print("---------猜一猜啦----------")
temp = input("猜下1-100以内的数字:")
guess = int(temp) # 强制类型转换
if(guess == secret):
print("你猜对了!,数字是%d" % secret)
break
else:
print("你猜错了!")
i += 1
print("正确结果是:%d" % secret)
print("游戏结束!")
这一题要导入random(随机)包
要生成随机数,要用到random.randint( )方法
random.randint(a,b)
函数返回数字 N ,N 为 a 到 b 之间的数字(a <= N <= b),包含 a 和 b。
故random.randint(1,101) 返回的是 1-100随机数
利用while控制机会次数,每次判断完,用过的机会数+1
剩下的实现较为简单,用输入的guess与生成随机数secret作比较即可
执行结果如下
---------猜一猜啦----------
猜下1-100以内的数字:23
你猜错了!
---------猜一猜啦----------
猜下1-100以内的数字:34
你猜错了!
---------猜一猜啦----------
猜下1-100以内的数字:67
你猜错了!
---------猜一猜啦----------
猜下1-100以内的数字:87
你猜错了!
---------猜一猜啦----------
猜下1-100以内的数字:78
你猜错了!
正确结果是:72
游戏结束!
第二种解法:
import random #导入库
num = random.randint(1,101) #1-100随机数
#使用range()
for chance in range(1,6):
guess = int(input("请输入你要猜的数:"))
if guess== num:
print("恭喜你猜对了,随机产生的数为:%d" % num)
print("你用了【",chance,"】次,猜对了数字")
break
elif guess > num:
print("猜大了")
print("您还有",(5-chance),"次机会。")
else:
print("猜小了")
print("您还有", (5 - chance), "次机会。")
else:
print("您的5次机会用完了,正确的猜数结果应该是:%d" % num)
执行结果如下
请输入你要猜的数:55
猜小了
您还有 4 次机会。
请输入你要猜的数:67
猜小了
您还有 3 次机会。
请输入你要猜的数:80
猜小了
您还有 2 次机会。
请输入你要猜的数:90
猜大了
您还有 1 次机会。
请输入你要猜的数:87
猜大了
您还有 0 次机会。
您的5次机会用完了,正确的猜数结果应该是:82
3.第五题
第一种解法:
i = j = 1
while i<10:
while j<=i:
print(i,"*",j,"=",i*j,end='\t')
j+=1
i+=1
j=1
print()
第二种解法:
for row in range(1,10):
for col in range(1,row+1):
print("{0}*{1}={2}".format(col,row,col*row),end="\t")
print("")
执行结果如下
1 * 1 = 1
2 * 1 = 2 2 * 2 = 4
3 * 1 = 3 3 * 2 = 6 3 * 3 = 9
4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16
5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25
6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36
7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49
8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64
9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81