例题

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