改进我们的小游戏
概有以下几个方面需要改进:
猜错的时候程序应该给点提示,例如告诉用户输入的值是大了还是小了。
每运行一次程序只能猜一次,应该提供多次机会给用户猜测。
每次运行程序,答案可以是随机的。因为程序答案固定,容易导致答案外泄。
条件分支
第一个改进要求:猜错的时候程序提示用户当前的输入比答案大了还是小了。
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