改进我们的小游戏

概有以下几个方面需要改进:

猜错的时候程序应该给点提示,例如告诉用户输入的值是大了还是小了。

每运行一次程序只能猜一次,应该提供多次机会给用户猜测。

每次运行程序,答案可以是随机的。因为程序答案固定,容易导致答案外泄。

条件分支

第一个改进要求:猜错的时候程序提示用户当前的输入比答案大了还是小了。

Python 的比较操作符

>左边大于右边

>=左边大于等于右边

<左边小于右边

<=左边小于等于右边

==左边等于右边

!=左边不等于右边

Python的条件分支语法:

if 条件 :

 条件为真(True)执行的操作

else:

 条件为假(False)执行的操作

while循环


第二个改进要求:程序应该提供多次机会给用户猜测,专业点来讲就是程序需要重复运行某些代码。

请用红笔圈出你认为需要进行循环的代码:

print('------------------------------------')

temp = input("不妨猜一下我现在心里想的是哪个数字:")

guess = int(temp)

while guess!==8:

temp=input("猜错了,请重新输入:")

guess=int(temp)

if guess == 8:

    print("我草,你是我心里的蛔虫吗?!")

    print("哼,猜中了也没有奖励!")

else:

    if guess>8:

        print("哥,大了")

    else:

        print("小了")

print("游戏结束,不玩啦^_^")


while循环

Python的While循环语法:

while 条件 :

    条件为真(True)执行的操作

这里我们给大家的提示是:使用and逻辑操作符

Python的and逻辑操作符可以将任意表达式连接在一起,并得到一个布尔类型的值。

>>> 3>2 and 3>4

False

>>> 3>2 and 3<4

True

>>> (3>2) and (3<4)

True

>>> 

引入外援


第三个改进要求:每次运行程序产生的答案是随机的。

我们需要引入外援:random模块

这个random模块里边有一个函数叫做:randint(),Ta会返回一个随机的整数。

我们可以利用这个函数来改造我们的游戏!

import random

secret = random.randint(1,10)

print('****************小游戏******************')

temp = input("不妨猜一下我现在心里想的是哪个数字:")

guess = int(temp)

while guess != secret:

    temp = input("哎呀,猜错了,请重新输入吧:")

    guess = int(temp)

    if guess==secret:

        print("我想什么你都知道?")

        print("哼,猜中了也没有奖励!")

    else:

        if guess > secret:

            print("哥,大了")

        else:

            print("嘿,小了")

print("游戏结束,不玩啦")


闲聊之Python的数据类型

整型

布尔类型

浮点型

E记法

>>> a=0.0000000000000000025

>>> a

2.5e-18

>>> 1500000000000

1500000000000

>>> 1.5E11

150000000000.0

>>> 15E10

150000000000.0

>>> 1.5e4

15000.0

>>> True + True

2

>>> True + False

1

>>> 

数据转换

>>> a="520"

>>> b=int(a)

>>> b

520

>>> b=int("小明")

Traceback (most recent call last):

  File "<pyshell#11>", line 1, in <module>

    b=int("小明")

ValueError: invalid literal for int() with base 10: '小明'

>>> a=5.99

>>> c=int(a)

>>> c

5

>>> a="520"

>>> b=float(a)

>>> b

520.0

>>> a=520

>>> b=float(a)

>>> b

520.0

>>> a=5.99

>>> b=str(a)

>>> b

'5.99'

>>> c=5e10

>>> b=str(c)

>>> b

'50000000000.0'

>>> 

>>> str="I Love Python"

>>> str

'I Love Python'

>>> c=str(3)

Traceback (most recent call last):

  File "<pyshell#29>", line 1, in <module>

    c=str(3)

TypeError: 'str' object is not callable

>>> 

获得关于类型的信息

type()

isinstance()

>>> a="520"

>>> type(a)

<class 'str'>

>>> type(5.2)

<class 'float'>

>>> type(1)

<class 'int'>

>>> type(True)

<class 'bool'>

>>> a="520"

>>> isinstance(a,str)

True

>>>isinstance(a,int)

False