游戏描述:系统给定一个数字,用户多次进行输入,直到用户猜中为止
number=50#系统给定数字
flag=False#用来判定用户是否猜中,猜中则退出while循环
while flag==False:#用来实现用户的多次循环,直到用户猜中
guess_number=int(input("Please enter an integer:"))
#用户输入一个整型数字
if guess_number==number:#若用户猜中
print("恭喜你猜对了")
flag=True#更新flag,用来跳出当前循环
elif guess_number<number:#若用户猜的数字过小则进行提示
print("不好意思,你猜的数字小了一点")
else:#若用户猜的数字过大则进行提示
print("不好意思,你猜的数字大了一点")
#跳出while循环之后执行下面代码来提示用户游戏的结束
print("游戏已结束,期待您的再次光临")
输出结果:
Please enter an integer:25
不好意思,你猜的数字小了一点
Please enter an integer:58
不好意思,你猜的数字大了一点
Please enter an integer:50
恭喜你猜对了
游戏已结束,期待您的再次光临
可以学到的知识:
1.如何通过python语言来让用户输入信息,来实现与用户的交互?
方法:使用input()函数,代码中 guess_number=int(input(“Please enter an integer:”))的意思就是在用户界面先输出Please enter an integer:之后,在此处会进行暂停等待用户输入,注意用户输入的类型是字符串类型,因此想要其变为整型,需要前面加一个int类型来进行强制类型转换,之后再赋值给变量guess_number即可
2.当系统出现如下报错时表示什么意思,应该如何进行更改?
IndentationError: expected an indented block
方法:首先控制台出现上述信息时说明你的代码块中某处缩进格式不对,比如本代码块中while循环之后的代码块全部需要缩进一个Tab,而在while代码块里面的if代码块下面的执行语句也要相对应的缩进一个Tab,另外学过java,c++的人可能学python不太适应,比如我,经常缩进格式错误或者控制流后面的:给忘了!
3.使用eclipse来编写python语言时,当输出中文时发生了错误应该如何修改?
方法:修改eclipse的编码,到Project–》properties–》resource --》test file encoding 选择内other --》选择utf-8,应用保存即可 之后所有的中英文都不在出现报错。
游戏描述:经常玩游戏的人应该会知道,平时玩一场游戏通常有固定次数条命或者机会,那么如何把该条件应用到咱们这个猜数字游戏当中去呢?
number=50#系统给定数字
guess_chances=3#用户猜数字的机会
print("玩家你好,你只有"+str(guess_chances)+"次机会,请珍惜每一次机会")
print("游戏开始:")
for i in range(1,guess_chances+1):
print("这是第"+str(i)+"次机会,请珍惜")
guess_number=int(input("Please enter an integer:"))
#用户输入一个整型数字
if guess_number==number:#若用户猜中
print("恭喜你猜对了")
break#猜中则直接跳出当前for循环
elif guess_number<number:#若用户猜的数字过小则进行提示
print("不好意思,你猜的数字小了一点,你还剩下"+str(guess_chances-i)+"次机会")
else:#若用户猜的数字过大则进行提示
print("不好意思,你猜的数字大了一点,你还剩下"+str(guess_chances-i)+"次机会")
#跳出for循环之后执行下面代码来提示用户游戏的结束
print("游戏已结束,期待您的再次光临")
输出结果:
玩家你好,你只有3次机会,请珍惜每一次机会
游戏开始:
这是第1次机会,请珍惜
Please enter an integer:25
不好意思,你猜的数字小了一点,你还剩下2次机会
这是第2次机会,请珍惜
Please enter an integer:58
不好意思,你猜的数字大了一点,你还剩下1次机会
这是第3次机会,请珍惜
Please enter an integer:50
恭喜你猜对了
游戏已结束,期待您的再次光临
可以学到的知识:
1.与类型一不同的是,当用户猜中时并没有提前设置一个标记来表示是否猜中,而是采用了break关键字来进行直接跳出该循环,break的用法就是直接跳出当前循环,去执行循环之外的语句。
2.对于python中的if-else循环语法为:
if 条件:
执行语句 #注意要进行缩进
elif 条件:#注意不是elseif
执行语句 #注意要进行缩进
else:
执行语句 #注意要进行缩进
3.对于for循环语法为:
for 变量i in range(i初值,i最大值+1):
执行代码块 #注意要进行缩进
其中in之后不一定要接range()函数,还可以接列表,元组,字典等
4.Python中列表和元组的区别
Tuple 与 list 的相同之处
定义 tuple 与定义 list 的方式相同, 除了整个元素集是用小括号包围的而不是方括号。
Tuple 的元素与 list 一样按定义的次序进行排序。 Tuples 的索引与 list 一样从 0 开始, 所以一个非空 tuple 的第一个元素总是 t[0]。负数索引与 list 一样从 tuple 的尾部开始计数。与 list 一样分片 (slice) 也可以使用。注意当分割一个 list 时, 会得到一个新的 list ;当分割一个 tuple 时, 会得到一个新的 tuple。
Tuple 不存在的方法:
不能向 tuple 增加元素。Tuple 没有 append 或 extend 方法。
不能从 tuple 删除元素。Tuple 没有 remove 或 pop 方法。然而, 可以使用 in 来查看一个元素是否存在于 tuple 中。
用 Tuple 的好处:
Tuple 比 list 操作速度快。如果定义了一个值的常量集,并且唯一要用它做的是不断地遍历它,请使用 tuple 代替 list。如果对不需要修改的数据进行 “写保护”,可以使代码更安全。
Tuple 的其他应用:
一次赋多值:
v = (‘a’, ‘b’, ‘e’)
(x, y, z) = v
解释:v 是一个三元素的 tuple, 并且 (x, y, z) 是一个三变量的 tuple。将一个 tuple 赋值给另一个 tuple, 会按顺序将 v 的每个值赋值给每个变量。
5. 对于字符串类型,可以用单引号也可以用双引号,如果想输出多行,则采用三引号也就是’’’。
6. 当执行下面语句时
print("这是第"+str(i)+"次机会,请珍惜")
输出整型i时需要使用str()函数来将整型i转为字符串,否则会出现报错
主要是对类型一的简化,并且使用了break和continue
number=50#系统给定数字
print("游戏开始:")
i=1
while True:
print("这是第"+str(i)+"次猜数字")
i=i+1
guess_number=int(input("Please enter an integer:"))
#用户输入一个整型数字
if guess_number==number:#若用户猜中
print("恭喜你猜对了")
break#猜中则直接跳出当前for循环
elif guess_number<number:#若用户猜的数字过小则进行提示
print("不好意思,你猜的数字小了一点 ")
continue#执行下一次循环
else:#若用户猜的数字过大则进行提示
print("不好意思,你猜的数字大了一点")
continue#执行下一次循环
#跳出while循环之后执行下面代码来提示用户游戏的结束
print("游戏已结束,期待您的再次光临")
输出结果:
游戏开始:
这是第1次猜数字
Please enter an integer:25
不好意思,你猜的数字小了一点
这是第2次猜数字
Please enter an integer:58
不好意思,你猜的数字大了一点
这是第3次猜数字
Please enter an integer:50
恭喜你猜对了
游戏已结束,期待您的再次光临
可以学到的知识:
1.关键字break和continue的区别
break是指跳出当前循环体,去执行循环体之外的语句;
continue是指跳出该次循环,并且此次循环中continue后面的语句不再执行,去执行下一次的循环
2.Python中还有关键字pass,那么pass和continue有什么区别呢?
pass是指不执行当前循环中的条件的执行语句,而之后的代码块是执行的,而continue是指跳出该次循环,并且此次循环中continue后面的语句不再执行,去执行下一次的循环,具体区别看下面的代码
a_list = [0, 1, 2]#定义一个列表
print("using continue:")
for i in a_list:#循环遍历列表元素
if i ==0:#当i=0时继续执行下一次循环,即print(0)不进行执行
continue
print(i)
print("using pass:")
for i in a_list:
if i==0:#当i=0时当前条件的代码块不再执行,而去执行该条件之后的代码块
#也就是print(0)是进行执行的
pass
print(i)
输出结果:
using continue:
1
2
using pass:
0
1
2
初学Python,若有错误还请大佬多多指教!