"""用python设计第一个游戏""" temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:") guess = int(temp) if guess==8: print("你是小甲鱼心里的蛔虫嘛?") print("猜中了也没奖励") else: print("猜错了,想的是8") print("游戏结束")
课后作业:
temp = input("please input a number between 1-100") num = int(temp) if 1<=num<=100: print("beautiful") else: print("wrong")
name = input("请输入您的姓名") print('您好,'+name+'!')P4-P5:变量和字符串
1. 变量名variable:通常是由字母、数字和下划线构成,但不能以数字打头,中文字符也可以作为变量名
将x,y的赋值交换,除了可以设置中间变量z,在python中还可以这样实现:
x = 3 y = 5 z = x x = y y = z x,y = y,x print(x,y)
2. 字符串strings:single quotes/double quotes/triple quoted,数量表示引号类型,triple表示长字符串,三个单引号或三个双引号都可
单双引号的出现都必须成双成对,否则python无法识别
Q:若一个句子中同时有单双引号出现怎么办?转义字符怎么使用?如何换行?
print("Let's go") print(""Life is short, Let's learn Python."") print("I love python.nI love fish.")
A:转义字符是在每一个"/'前面加反斜杠,表示这里的单双引号是出现在句子中的,无意义
换行符为n,注意前后都不要加空格
3. 原始字符串raw strings:为了解决长文本中引号太多无法一一加的问题
print("D:threetwoonenow") D: hree woone ow print("D:\three\two\one\now") D:threetwoonenow print(r"D:threetwoonenow") D:threetwoonenow
反斜杠不能放在字符末尾,否则表示这事儿还没完
print(" n * n * * n * * * n * * * *nnn") * * * * * * * * * *
4. 长字符串triple quoted:为了解决长字符串的换行问题,一定要三个单引号或三个双引号前后呼应''' ''',""" """
poetry =""" 面朝大海,春暖花开 从明天起,做一个幸福的人 喂马、劈柴、周游世界 """ print(poetry) 面朝大海,春暖花开 从明天起,做一个幸福的人 喂马、劈柴、周游世界
5. 字符串的加法和乘法concatenation anad multiplication of strings
520 和 '520'是不一样的,字符串本身就是文本,它的+和数字+是完全不一样的,字符串的+就是拼接,字符串后面加*代表重复的次数
520 +1314 1834 '520' + '1314' '5201314' print("我每天爱你三千遍!n"*3000)
3000遍不会直接显示在IDLE中,右键点view可以在新窗口看
P6:代码1. 复习第一天写的小游戏game.py
if条件:如果条件为真(True)执行这里的语句
else:如果条件为假(False)执行这里的语句
P7-P8: 改进小游戏
目标:a)当用户猜错时,程序应该给出提示;b)应提供多次机会;c)每次运行程序,答案应该随机。
1. 条件嵌套(改进a)
"""用python设计第一个游戏""" temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:") guess = int(temp) if guess == 8: print("你是小甲鱼心里的蛔虫嘛?") print("猜中了也没奖励") else: if guess < 8: print("小了") else: print("大了") print("游戏结束")
在第一个if条件下再嵌套一个if结构,表示如果用户没有猜对8,即来到else之后的条件
2. 循环结构(改进b)
while条件:如果条件为真(true)执行这里的语句
while 1 < 2: print("ilove") KeyboardInterrupt
(使用ctrl+C强制停止,如果不 *** 作,程序会一直输出ilove)
counts = 3 while counts > 0: print("ilove") counts = counts - 1 ilove ilove ilove
(回车一次是换行,两次是执行code,没有R里面的end语句)
"""用python设计第一个游戏""" counts = 3 while counts > 0: temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:") guess = int(temp) if guess == 8: print("你是小甲鱼心里的蛔虫嘛?") print("猜中了也没奖励") else: if guess < 8: print("小了") else: print("大了") counts = counts - 1 print("游戏结束")
(TIPS:一整段code向后缩进用Ctrl+tap)
这段代码的问题在于,虽然解决了只循环三次的问题,但如果用户第一次就猜对了8,这个程序还是会运行3次,为了解决这个问题,引入break语句:
3. break语句
counts = 3 while counts > 0: print("ilove") counts = counts - 1 break ilove
只运行一次print
"""用python设计第一个游戏""" counts = 3 while counts > 0: temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:") guess = int(temp) if guess == 8: print("你是小甲鱼心里的蛔虫嘛?") print("猜中了也没奖励") break else: if guess < 8: print("小了") else: print("大了") counts = counts - 1 print("游戏结束")
这里的break使得如果用户猜中8,程序就停止运行
4. random(生成伪随机数,改进c)
如何查找python中的模块:点击左上角最右侧的help—python Docs(F1)—左上角索引—输入
引入模块:import random(对比R: install.packages,载入library)
import random random.randint(1,10) 2
(random.randint:随机生成括号内所示范围的整数)
(若想重复上一条语句,可以使用alt+P)
"""用python设计第一个游戏""" import random counts = 3 answer = random.randint(1,10) while counts > 0: temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:") guess = int(temp) if guess == answer: print("你是小甲鱼心里的蛔虫嘛?") print("猜中了也没奖励") break else: if guess < 8: print("小了") else: print("大了") counts = counts - 1 print("游戏结束")
(以上代码解决了c问题,每次的答案都是随机的)
拓展内容:如何重现随机数
要想重现随机数,就要知道随机数生成器的内在逻辑(种子),从而实现对随机数生成过程的复制
x = random.getstate() print(x) random.randint(1,10) 8 random.randint(1,10) 9 random.randint(1,10) 2 random.randint(1,10) 6 random.randint(1,10) 4 random.setstate(x) random.randint(1,10) 8 random.randint(1,10) 9 random.randint(1,10) 2 random.randint(1,10) 6 random.randint(1,10) 4
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)