目录
一、趣味游戏
可以自己先尝试着编写一下,具体的讲解在本文的最后
打开IDLE -【File】-【New File】
"""用Pyhon设置的第一个游戏"""
temp = input("不妨猜一下Leo现在心里面想的是哪个数字:")
guess = int(temp)
if guess == 8:
print("你是我肚子里面的蛔虫吗?")
print("猜中了也没奖励!!!")
else:
print("猜错啦,Leo我现在心里面想的是8!")
print("游戏结束,不玩啦~")
编辑完成后,依次点击 【Run】-【Run Module】,此时程序就跑起来了
如果是第一次敲代码,程序无法正常跑起来,可能是以下几个问题:
- 代码中的符号是否全是英文符号;
- 缩进是否正确
- 函数的拼写是否正确
二、基础语法
2.1 print()
print()函数是python中常见的函数之一,它可以用来把编写者想要表达的东西打印到输出台上
print()
print() 函数输出:
- ()内输出字符串时,必须加上单引号或双引号
- 输出内容:数字、字符串、含有运算符的表达式
# 数字
>>> print(5201314)
5201314
# 字符串
>>> print("hello word")
hello word
>>> print('hello word')
hello word
>>> print(hello word) # 不加引号会报错 SyntaxError: invalid syntax
SyntaxError: invalid syntax
- 输出目的地:控制台、文件
# 输出控制台
print('Leo 不懂代码')
# 输出文件
fp = open('E:/test.txt') # 输出数据的路径 a+:如果文件存在则打开文件续写;如果文件不存在,则新建文件编写
print('Leo不懂代码',file = fp)
fp.close()
- 输出样式:换行、不换行
2.2 dir(builtins)
dir(builtins) 可以显示出来python中所有的内置函数
dir(__builtins__)
['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BlockingIOError', 'BrokenPipeError', 'BufferError', 'BytesWarning', 'ChildProcessError', 'ConnectionAbortedError', 'ConnectionError', 'ConnectionRefusedError', 'ConnectionResetError', 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EnvironmentError', 'Exception', 'False', 'FileExistsError', 'FileNotFoundError', 'FloatingPointError', 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError', 'ImportWarning', 'IndentationError', 'IndexError', 'InterruptedError', 'IsADirectoryError', 'KeyError', 'KeyboardInterrupt', 'LookupError', 'MemoryError', 'ModuleNotFoundError', 'NameError', 'None', 'NotADirectoryError', 'NotImplemented', 'NotImplementedError', 'OSError', 'OverflowError', 'PendingDeprecationWarning', 'PermissionError', 'ProcessLookupError', 'RecursionError', 'ReferenceError', 'ResourceWarning', 'RuntimeError', 'RuntimeWarning', 'StopAsyncIteration', 'StopIteration', 'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError', 'TimeoutError', 'True', 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError', 'UnicodeWarning', 'UserWarning', 'ValueError', 'Warning', 'WindowsError', 'ZeroDivisionError', '__build_class__', '__debug__', '__doc__', '__import__', '__loader__', '__name__', '__package__', '__spec__', 'abs', 'all', 'any', 'ascii', 'bin', 'bool', 'breakpoint', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod', 'compile', 'complex', 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'exec', 'exit', 'filter', 'float', 'format', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'map', 'max', 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'quit', 'range', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars', 'zip']
标识符
所谓标识符,就是变量、函数、属性、类、模块等可以由程序员指定名称的代码元素
构成标识符的字符均遵循一定的命名规则:
- 区分大小写,Myname 与 myname 是两个不同的标识符
- 首字符可以是字母、下划线_ 、但绝不可以是数字
- 除首字母外的其他字符必须是下划线、字母和数字
- 关键字不能作为标识符
- 不要使用Python的内置函数作为自己的标识符
小知识:Python 3 的字符采用了双字节Unicode编码。Unicode编码被称作为统一编码制,包含了亚洲文字编码,例如中文、日文、韩文等字符
注:Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案
关键字
关键字是由语言本身定义好的有特殊含义的代码元素
Python 中共有33个关键字,其中False、None、True的首字母大写,其他关键字全部小写
import keyword # 导入关键词的包
print(keyword.kwlist)
关键字 | |||||
False | None | True | and | as | assert |
break | class | continue | def | del | elif |
else | except | finally | for | from | global |
if | import | in | is | lambda | nonlocal |
not | or | pass | raise | return | try |
while | with | yield |
变量
顾名思义,变量就是一个名字,一个标签
在Python中,为一个变量赋值的同时,就声明了该变量,该变量的数据类型就是赋值数据所属的类型,该变量还可以接收其他类型的数据
- 特性:
- 变量最终打印的值,为最后一次赋予它的值(最后一次赋值之前的值被称为:内存垃圾)
- 两个变量之间可以相互赋值
- 在Java和C语言中,变量声明为一种数据类型后,就不能接收其他类型的数据了
- 但是在Python中,可以保存其他类型的数据
语句
Python代码是由关键字、标识符、表达式和语句等构成的,语句是代码的重要组成部分。在Python中,一行代码表示着一条语句,在一般情况下,语句结束时不用加分号 ";".
greeting = "Hello word"
student_score = 0.0; # 语句结束的时候可以加分号,但是不符合Python的编码规范
a = b = c = 10 # Python链式赋值语句可以同时给多个变量赋相同的数值
转义字符
Python中的字符串还支持转义字符。所谓转义字符是指使用反斜杠 ” \ “ 对一些特殊字符进行转义
转义字符 | 说明 |
\ | 续行符 |
\n | 换行符 |
\0 | 空 |
\t | 水平制表符(用于横向跳到下一个制表位) |
\" | 双引号 |
\' | 单引号 |
\\ | 一个反斜杠 |
\f | 换页 |
\0dd | 八进制数,dd代表字符(\012代表换行) |
\xhh | 十六进制数,hh代表字符(\x0a代表换行) |
反斜杠在一行的代码末尾,代表着这行代码执行了之后还没有结束,需要在继续执行后面的代码
字符串
字符串主要的编写方式有以下三种
- single quotes:使用单引号将文本包裹起来
print('Leo不懂代码')
- Double quotes:使用双引号将文本包裹起来
print("但是Leo愿意去学")
- Triple quotes:使用三引号将文本包裹起来
"""
床前明月光,疑是地上霜。
举头望明月,低头思故乡。
"""
三、小游戏讲解
"""用Pyhon设置的第一个游戏""" # 只是对代码的注释,无特殊含义
temp = input("不妨猜一下Leo现在心里面想的是哪个数字:") # temp 是一个变量,input()函数,用于接收用户的输入,拿到用户输入的值之后,与左侧的temp变量名进行挂钩
guess = int(temp) # 此时,获取到用户输入的值,是一个str类型的,我们需要把他转换成int类型(只能转换整数)
if guess == 8: # 这里用到了比较运算符 == 和 条件语句 if else
print("你是我肚子里面的蛔虫吗?") # 该条件是当满足条件语句的时候,程序继续往下运行
print("猜中了也没奖励!!!")
else:
# 该代码是,当条件不满足条件语句的时候从此处代码继续往下运行,当条件满足时,会跳过该行及相关代码,直接往下运行
print("猜错啦,Leo我现在心里面想的是8!")
print("游戏结束,不玩啦~") # 程序的最后一行代码,用于结尾
下面是小游戏的优化:
- 当用户猜错的时候,应该给出相应的提示
"""用Pyhon设置的第一个游戏""" # 只是对代码的注释,无特殊含义
temp = input("不妨猜一下Leo现在心里面想的是哪个数字:") # temp 是一个变量,input()函数,用于接收用户的输入,拿到用户输入的值之后,与左侧的temp变量名进行挂钩
guess = int(temp) # 此时,获取到用户输入的值,是一个str类型的,我们需要把他转换成int类型(只能转换整数)
if guess == 8: # 这里用到了比较运算符 == 和 条件语句 if else
print("你是我肚子里面的蛔虫吗?") # 该条件是当满足条件语句的时候,程序继续往下运行
print("猜中了也没奖励!!!")
else:
# 该代码是,当条件不满足条件语句的时候从此处代码继续往下运行,当条件满足时,会跳过该行及相关代码,直接往下运行
if guess < 8: # 嵌套if语句
print("不对,你输入的值小了")
else:
print("不对,你输入的值大了")
print("游戏结束,不玩啦~") # 程序的最后一行代码,用于结尾
- 应该提供多次机会给用户
"""用Pyhon设置的第一个游戏""" # 只是对代码的注释,无特殊含义
counts = 3 # 设置一个变量
while counts > 0: # while循环语句
temp = input("不妨猜一下Leo现在心里面想的是哪个数字:") # temp 是一个变量,input()函数,用于接收用户的输入,拿到用户输入的值之后,与左侧的temp变量名进行挂钩
guess = int(temp) # 此时,获取到用户输入的值,是一个str类型的,我们需要把他转换成int类型(只能转换整数)
if guess == 8: # 这里用到了比较运算符 == 和 条件语句 if else
print("你是我肚子里面的蛔虫吗?") # 该条件是当满足条件语句的时候,程序继续往下运行
print("猜中了也没奖励!!!")
break # while循环语句的搭档,用于跳出同层的循环语句
else:
# 该代码是,当条件不满足条件语句的时候从此处代码继续往下运行,当条件满足时,会跳过该行及相关代码,直接往下运行
if guess < 8: # 嵌套语句
print("不对,你输入的值小了")
else:
print("不对,你输入的值大了")
counts = counts - 1 # 当每执行一次后,自动给counts-1,相当于游戏人物的 “血量”
print("游戏结束,不玩啦~") # 程序的最后一行代码,用于结尾
- 每次运行程序的时候,答案应该是随机的
"""用Pyhon设置的第一个游戏""" # 只是对代码的注释,无特殊含义
import random # 导入random(随机数)模块,生成一个伪随机数
counts = 3
answer = random.randint(1,10)
while counts > 0: # while循环语句
temp = input("不妨猜一下Leo现在心里面想的是哪个数字:") # temp 是一个变量,input()函数,用于接收用户的输入,拿到用户输入的值之后,与左侧的temp变量名进行挂钩
guess = int(temp) # 此时,获取到用户输入的值,是一个str类型的,我们需要把他转换成int类型(只能转换整数)
if guess == answer: # 这里用到了比较运算符 == 和 条件语句 if else
print("你是我肚子里面的蛔虫吗?") # 该条件是当满足条件语句的时候,程序继续往下运行
print("猜中了也没奖励!!!")
break # while循环语句的搭档,用于跳出同层的循环语句
else:
# 该代码是,当条件不满足条件语句的时候从此处代码继续往下运行,当条件满足时,会跳过该行及相关代码,直接往下运行
if guess < answer: # 嵌套语句
print("不对,你输入的值小了")
else:
print("不对,你输入的值大了")
counts = counts - 1
print("游戏结束,不玩啦~") # 程序的最后一行代码,用于结尾
以下内容看不懂也没关系,因为在我写这篇文档的时候,我也看不懂,哈哈哈~
随机数也可以进行重现!!!
random.getstate():随机数的内部状态
random.randint():设置随机数的范围
random.setstate():重现随机数
x = random.getstate() # 将随机数的内部状态保存到 x 当中 random.randint(1,10) # 任意生成三个随机数 4 random.randint(1,10) 1 random.randint(1,10) 7 random.setstate(X) # 重现随机数 random.randint(1,10) 4 random.randint(1,10) 1 random.randint(1,10) 7