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

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

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

建议

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

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

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

脚本的编辑与运行

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

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

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关键字(保留字):

and as assert break class continue
def del elif else except finally
for from False gloabl if import
in is lambda nonlocal not None
or pass raise return try True
while with yield

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

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+1print(a)
print("结束")

输出结果:

1
2
3
4
结束

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

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

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

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

运行结果:

1
结束

使用continue跳过循环:

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

运行结果:

1
3
4
结束

实现游戏

闭门造车,出门合辙

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

需求

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

代码

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

2.基础语法:手指抽筋模拟器相关推荐

  1. FPGA(2)基础语法 -- 按键控制led(alway@语句)

    目录 1.module 文件名(端口) 2.声明关键字 3.always@语句 代码 1.module 文件名(端口)  注:这里最好养成习惯,只在文件名后面的括号中声明引脚变量,输入输出.关键字类型 ...

  2. javascript基础语法——表达式

    前面的话 一般地,关于javascript基础语法,人们听得比较多的术语是操作符和语句.但是,其实还有一个术语经常使用,却很少被提到,这就是javascript表达式(expression).本文将详 ...

  3. Rust语言开发基础(六)基础语法

    2019独角兽企业重金招聘Python工程师标准>>> 一.变量的定义和使用 其它常见的编程语言对变量的定义通常是通过声明类型和使用关键new来创建一个变量,但Rust不是,Rust ...

  4. python列表嵌套字典取值_Python基础语法:你不得不知的几种变量类型

    (点击上方快速关注并设置为星标,一起学Python) 作者:kina_chen來源:简书 01. Python编码Python中默认的编码格式是 ASCII 格式,在没修改编码格式时无法正确打印汉字, ...

  5. python赋值语句的一般格式为_Python 基础语法

    Python 基础语法 Python 语言与 Perl,C 和 Java 等语言有许多相似之处.但是,也存在一些差异. 在本章中我们将来学习 Python 的基础语法,让你快速学会 Python 编程 ...

  6. 深入浅出CMake(二): 基础语法

    在<深入浅出CMake(一):基础篇>文章中,我们已经知道了怎么依葫芦画瓢编写简单的 CMake 构建文件了,但如果应对复杂的工程的话,这还是远远不够的. CMake 是一套编译构建体系, ...

  7. Python基础语法学习笔记

    Python基础语法学习笔记 想淘宝省钱看我简介,博客www.liangxin.name (一) 一.Print()函数 1.数字可以直接输出,无需加引号 只能理解数字,却读不懂文字.因为数字和数学运 ...

  8. Python的零基础超详细讲解(第三天)-Python的基础语法

    多行语句 Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠 \ 来实现多行语句,例如: duohang = item_one + \item_two + \item_three ...

  9. Python的零基础超详细讲解(第二天)-Python的基础语法1

    Python 基础语法 打开python的编辑器 这里注意的是,之前下载的python在电脑主页上没有快捷方式,需要在win开始界面中打开 最终打开效果是一个白色的跟终端类似的编辑器,我们输入的时候是 ...

最新文章

  1. 【计算理论】计算复杂性 ( 证明团问题是 NP 完全问题 )
  2. 如何设置电脑锁屏时间_电脑如何设置多屏显示?多屏显示的设置方法
  3. JUC队列-LinkedBlockingDeque(三)
  4. jmeter ForEach控制器学习
  5. 如何以sandbox模式测试开发好的Fiori Launchpad插件
  6. 【转】tftp命令详解
  7. 李彦宏:AI 企业要保护隐私;罗永浩回应酷派“欠钱不还”;ofo 郑州公司人去楼空 | 极客头条...
  8. 企业中有关Server Sharing的一点想法
  9. Json转换为Model,Struct,Class对象 Swift
  10. [计算机网络][内容梳理]四、网络层
  11. lg linux电视安装软件,LG电视如何安装第三方应用软件的方法教程
  12. Proxomitron之天涯只看规则
  13. moment.js计算时间差
  14. R语言实现 懒惰学习——使用近邻分类
  15. android视频拷到iphone6,苹果和安卓手机保存B站视频到U盘方法介绍
  16. 基于mina框架的GPS设备与服务器之间的交互
  17. 期权的定义与BSM定价
  18. java计算机毕业设计无线通信基站监控及管理系统源码+系统+数据库+lw文档+mybatis+运行部署
  19. matlab details
  20. 华为的倔强和悲壮,Nova9不支持5G却比对手更贵

热门文章

  1. bugku 图穷匕见
  2. UCSC寻找基因位置并用IGV画出基因转录示意图
  3. flac文件转wav_WAV文件真的比FLAC更好吗?
  4. 网上书店平台---设计活动
  5. 【C语言】memcmp、memcpy、memmove、memset、memchr函数详解
  6. 【Rust 日报】2022-10-16 全栈同构Web框架leptos
  7. 坦然的面对一切都已经发生的事实
  8. 卧槽!GitHub标星7.9K star,抢茅台酒脚本竟然开源了!网友:已抢到,真香!
  9. 什么是一网统管?终于有人讲明白了
  10. Sql Server服务远程过程调用失败。[0x800706be]