小甲鱼python(2019最新版)学习笔记(P3-P8)

小甲鱼python(2019最新版)学习笔记(P3-P8),第1张

甲鱼python(2019最新版)学习笔记(P3-P8) P3:设计小游戏
"""用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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5680313.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存