2.基础语法:手指抽筋模拟器

标题就是本节要做的小游戏:手指抽筋模拟器。这是一个可升级游戏,现在我们要实现它的第一级:基础语法级。

玩法:手指不停的点击,看你能点多快!

别走,别走!我知道这游戏看起来有点智障,但鉴于咱还在新手村,打打低级怪练练级先!

建议

  • 基础很重要,不要做的不明不白

  • 代码亲手敲,不能假借别人之手

  • 开心很重要,不然飘飘然找周公

脚本的编辑与运行

别人是一步一个脚印,我是一步一个坑

有坑就要填,免得有人掉进去。

cmd和IDLE里带>>>这种箭头的叫做命令提示行,只能一行一行地写,回车便运行。如果要写很多行并且写写改改就很不方便。所以我们可以打开一个文件,代码全部写好后再一起运行。

编辑

不管什么编辑器都可以快捷键Ctrl+N打开新窗口编辑脚本,我见过有人盯着命令行好久不知所措。

Pydroid3里:

运行

试着把上一节的helloworld代码再写一遍,保存为hello.py文件。

IDLE里点击Run就可以直接运行,SublimeText使用快捷键Ctrl+B运行,Pydroid3点击右下角的黄色按钮。

电脑上你也可以直接双击文件夹里的hello.py运行python文件,但运行结束后黑色窗口会自动关闭,你来不及看到结果,在hello.py里的添加第二行:

input()

这样窗口就不会自动关闭。

但使用SublimeText快捷键直接运行不能使用input(),否则程序一直不会结束,直到你关闭SublimeText或者到任务管理器里关闭Python。

坑人吧,但是我对SublimeText是真爱!

基础语法

固本培元

数据类型

整型

整数类型,如:16661014651

浮点型

浮点浮的是小数点,即小数。如:0.16416666.666

字符串

由单引号或双引号括起来的文本,如:"你好"'666'"你好666"

如果引号里面有引号就要使用转义字符 \ ,如:'I\'m Tom.What\'s your name?'

注意括起字符的引号都是英文字符,如果你发现自己的字符串上出了bug,检查一下是不是用了中文字符。

布尔值

即bool值,只有两个值,TrueFalse,表示真与假。

变量赋值

试着敲出这段代码并运行

a = 666
print(a)

运行结果就是一个不知名的老铁给你扣了个666。

这里的a就是一个变量名,666就是我们给a赋的值。print的作用就是把它后面括号里的东西显示在结果上,你也可以把a赋值为字符串,看看运行结果。

但不要尝试print=666,这会改变print原本的意义(你硬要试试我也不拦你)。

还有些有它原本意义的单词你不能用做变量名,这些单词被称作Python关键字(保留字):

andasassertbreakclasscontinue
defdelelifelseexceptfinally
forfromFalsegloablifimport
inislambdanonlocalnotNone
orpassraisereturntryTrue
whilewithyield

不要去记忆上面这密密麻麻的单词!学习编程永远不是死记硬背,而是熟能生巧,上面这些关键字我们之后都会用到。

Python里的变量名是区分大小写的,print和Print是两个东西。

那么变量名还有什么限制吗?

  • 不能用数字或符号开头(除了__这个下划线)

  • 变量名不能有空格

可以用中文字符当作变量名吗?

当然可以,但想想打拼音的工作量以及冥冥之中似乎存在的某种限制,我还是建议你使用英文字符作为变量名。

类型转换

我们可以这样获得变量的类型:

a = 123
b = "123"
c = 123.456
print(type(a))
print(type(b))
print(type(c))

运行结果:

<class 'int'>
<class 'str'>
<class 'float'>

type会返回括号里数据的类型,int是整型,str是字符串,float是浮点型。

我们可以这样转换他们的类型:

a = 123.456
b = int(a)
c = str(b)
d = float(c)
print(type(b),b)
print(type(c),c)
print(type(d),d)

运行结果:

<class 'int'> 123
<class 'str'> 123
<class 'float'> 123.0

输出输入

输出

print后面的括号里可以放任何数据类型,只要你想知道某个东西是啥,print就行了。

如果要同时print多个东西呢:

print("数:",456,123.456)

可以加无数个逗号把要print的东西串成一行。想用一个print又不想串成一行:

print("数:\n",456,123.456)

使用换行符添加换行。

往字符串里插入数据:

a = "数:%d、%f"%(456,123.456)
print(a)

运行结果:

数:456、123.456000

使用%d这种格式化符号把后面括号的相应类型的数据依次插入到字符串中。

部分格式化符号:

%s%d%f%e
格式化字符串格式化整数格式化浮点数用科学计数法格式化浮点数
输入

使用input()输入:

a = input("输入:")
print(a)

input("输入:")括号里的字符串作为提示信息,也可以不写。

运行代码后input会等待你的输入,当你按下回车后,它把你的输入作为一个字符串赋值给a。

数学运算

用python进行一些数学运算非常简单:

print(1+2-3*4/5)
+-*/**%//
除法求余除法取整数

试试上面的运算符,你会发现python是个不错的计算器。

试试下面这个,看看结果是否与你想的一样。

print(5//2)
print(-5//2)

运行结果:

2
-3

这种取整称作向上取整。

条件语句

if-else语句表示如果-否则

a = 666
if a>555:
    print("好大!")
else:
    print("好小")

Python使用缩进来控制语句块的从属关系,比如print("好大!")属于它上面的ifprint("好小")属于其上面的else。当if后面的条件满足时,便执行属于它的语句块。

if-elif-else语句表示如果-不然如果-否则。elif,表示else if,即不然如果:

a = "dog"
if a=="cat":
    print("这是猫")
elif a=="rabbit":
    print("这是兔子")
elif a=="dog":
    print("这是狗")
else:
    print("不知道这是啥。")
这是狗

你可能注意到了这里有两个等于号,Python单个等于号表示赋值,两个等于号表示比较

print(1==2)

结果是个布尔值:False。实际上每个条件判断都会返回一个布尔值

条件运算符:

==!=><>=<=
等于不等于大于小于大于等于小于等于

使用notandor关键字表示非、与、或关系:

print(True and False) 
print(True or False)  
print(not True)
False
True
False

如果没有接触过其他编程语言这里可能会难以理解。

总的来说:

  • and两边都为真时,结果为真

  • or两边只要有一个为真,结果就为真

  • not使真变假,假变真

循环语句

衔尾蛇

while循环
a = 0
while a<4:
    a = a+1
    print(a)
print("结束")

输出结果:

1
2
3
4
结束

如果while后的条件判断为真(True),就执行属于它的语句块,执行完后再次重复刚才的判断,直到为假(False)就停止循环,执行循环外的代码。

其中语句a=a+1有更简单的写法:a+=1,两者效果一样。

类似的还有-=*=/=//=**=%=

使用break跳出循环:
a = 0
while a<4:
    a += 1
    if a==2:
        break
    print(a)
print("结束")

运行结果:

1
结束

使用continue跳过循环:

a = 0
while a<4:
    a += 1
    if a==2:
        continue
    print(a)
print("结束")

运行结果:

1
3
4
结束

实现游戏

闭门造车,出门合辙

还记得开头说的手指抽筋模拟器吗?你已经有了创造这个游戏的所有知识(如果你认真看了上面并试了的话)。我会在下面给出需求、代码和解释。

需求

  • 按下回车后显示当前已经按了几下

代码

#手指抽筋模拟器基础语法版.py
num = 0
print("你点我啊!")
while True:
    input()
    num += 1
    print("啊啊啊~",num)

请自行忽略其中的魔性字符串。

第一行:#井号后面包括井号为注释,python不会管注释,你尽可以在里面写些小秘密。

第二行:创建了一个变量num,并赋值为0

第四行:while后面是判断语句,前面说过所有判断语句都会返回一个布尔值,所以我们也可以直接写一个布尔值。这里的True,会使while循环永不停止(除非你关闭窗口)。

第五行:input()会等待你按下回车键再执行下面的代码,所以不用担心无限循环的while会搞坏你的CPU。

第六行:num增加1。


耐心的敲完上面的代码,玩一玩(尽管这没什么好玩的),你会发现这回有一个游戏bug:只要一直按着回车键就可以了。之后我们会做更多的游戏,顺便升级这个智障的手指抽筋模拟器。

练习

需求

  • 产生一定范围内的一个随机整数

  • 玩家输入猜测的数,提示大了还是小了,玩家再次猜测,直到猜对

  • 猜对后返回猜测次数。

提示代码

import random
num = random.randint(1,1000)
print(num)

第一行:import导入后面的库,这里导入了random

第二行:random.randint(a,b)的效果是产生a、b之间随机的一个整数。

第三行:print出来看看。

分析

  • 使用上面的提示代码产生一个随机整数

  • 进入循环,使用input等待玩家输入,并将输入转化为整型

  • 判断输入大小,print提示信息,判断是否猜对、结束循环


试一试,写写看。练习的示例代码会在下一节给出。
键就可以了。之后我们会做更多的游戏,顺便升级这个智障的手指抽筋模拟器。

练习

需求

  • 产生一定范围内的一个随机整数

  • 玩家输入猜测的数,提示大了还是小了,玩家再次猜测,直到猜对

  • 猜对后返回猜测次数。

提示代码

import random
num = random.randint(1,1000)
print(num)

第一行:import导入后面的库,这里导入了random

第二行:random.randint(a,b)的效果是产生a、b之间随机的一个整数。

第三行:print出来看看。

分析

  • 使用上面的提示代码产生一个随机整数

  • 进入循环,使用input等待玩家输入,并将输入转化为整型

  • 判断输入大小,print提示信息,判断是否猜对、结束循环


试一试,写写看。练习的示例代码会在下一节给出。
本系列地址:https://gitee.com/ZiKang12138/course/wikis

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值