Python集成开发工具(IDE)推荐

Python80

1.7 Python集成开发工具(IDE)推荐

1.7.1 Notepad++

Notepad++是Windows操作系统下的一套文本编辑器(软件版权许可证: GPL),有完整的中文化接口及支持多国语言编写的功能。
Notepad++功能比 Windows 中的 Notepad(记事本)强大,除了可以用来制作一般的纯文字说明文件,也十分适合编写计算机程序代码。Notepad++ 不仅有语法高亮度显示,也有语法折叠功能,并且支持宏以及扩充基本功能的外挂模组。
Notepad++是免费软件,可以免费使用,自带中文,支持众多计算机程序语言:包括C、C++、Java、PHP、Python等。
参考
Notepad++官网
全网最全NotePad++配置(适用于Python程序设计)

1.7.2 Thonny

这是一款比较轻量级别的IDE,比较适合新手使用,安装方便,功能比Python自带的IDLE要强大。
安装
1、打开CMD窗口,在命令行中输入命令并执行:pip install thonny
2、等待安装完成
使用
打开CMD窗口,在命令行中输入命令并执行:thonny
参考
轻量级Python IDE: Thonny
Thonny官网

1.7.3 Sublime Text

Sublime Text 是一个文本编辑器,同时也是一个先进的代码编辑器。Sublime Text是由程序员Jon Skinner于2008年1月份所开发出来,它最初被设计为一个具有丰富扩展功能的Vim。
Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。
参考
Sublime Text官网
Sublime Text百度百科

1.7.4 visual studio code

Visual Studio Code(简称"VS Code")是Microsoft在2015年4月30日Build开发者大会上正式宣布一个运行于 Mac OS X、Windows和 Linux 之上的,针对于编写现代Web和云应用的跨平台源代码编辑器。它具有对JavaScript,TypeScript和Node.js的内置支持,并具有丰富的其他语言(例如C++,C#,Java,Python,PHP,Go)和运行时(例如.NET和Unity)扩展的生态系统。
参考
visual studio code官网
总体评价 & 核心优势
免费:VSCode免费。
好用:别的IDE或Editor有的功能,其都有且设计得很好用。
性能好:资源占用少
功能强大:内置功能已经很强大,还支持扩展(插件)功能。

1.7.5 Pycharm

PyCharm是一种Python IDE(Integrated Development Environment,集成开发环境),带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外,该IDE提供了一些高级功能,以用于支持Django框架下的专业Web开发。
这款IDE是笔者一直在用的一款Python IDE,笔者算是Pycharm的重度使用者。下面将详细介绍这款IDE的配置及技巧。
参考
Pycharm官网
下载
Pycharm有两种版本,一种是专业版(收费),适用于专业程序员。解锁了所有的功能。另外一种是社区版(免费),可以满足大部分人员使用。笔者目前在使用的就是免费版,软件提供的功能能满足日常使用。
安装
手把手教你安装Pycharm
下图是安装好的PyCharm程序图标,双击即可运行。
Python集成开发工具(IDE)推荐

1.7.5.2 软件设置

安装好后,我们需要对Pycharm进行一些个性化的设置,以便更好的使用。一下是笔者推荐的一些初始设置。

1.7.5.2.1 汉化

由于安装完之后默认的语言是英文,在设置中又不能设置成中文,于是我们需要通过安装插件的方式将程序的默认语言调整成中文。该插件是官方汉化插件,可以放心使用。
Pycharm汉化教程

1.7.5.2.2 设置Python解释器

Pycharm可以针对不同的项目(示例中打开的项目是 练习)设置不同的解释器
位置:设置\项目: 项目名\Python解释器
Python集成开发工具(IDE)推荐

1.7.5.2.3 设置主题

可以根据自身的爱好设置自己喜欢的程序显示风格主题。
位置:设置\外观与行为\外观\主题,推荐自带的 WarmNeon主题
Python集成开发工具(IDE)推荐

1.7.5.2.4 脚本字体

在编写代码时,字体的选择是非常重要的。除了要漂亮之外还需要满足以下几个条件的才是好的编程字体:
1、等宽:每个字母的宽度一样
2、易分辨:比如小写的l和大写的i、数字0和字母o等
这里推荐:JetBrains Mono
设置位置:设置\编辑器\字体\首选字体
Python集成开发工具(IDE)推荐

1.7.5.2.5 缩放字体

设置后可以通过Ctrl+鼠标滚轮快速更改字体大小。
位置:设置\编辑器\常规→勾选 使用Ctrl+鼠标滚轮更改字号
Python集成开发工具(IDE)推荐

1.7.5.2.6 设置编码

通过设置合适编码可以有效的避免今后在编写代码、控制台输出时遇到的字符编码问题。设置成 UTF-8
文件编码位置:设置\编辑器\文件编码
Python集成开发工具(IDE)推荐

控制台位置:设置\编辑器\常规\控制台→默认编码:UTF-8

1.7.5.2.7 设置代码自动补齐

很多方法名、函数名之类的我们初学者不一定记得完整的拼写,于是需要设置成代码自动补齐,这也是IDE比较实用的功能之一。
位置:设置\编辑器\常规\代码完成→取消勾选 区分大小写(即大小写都匹配)
Python集成开发工具(IDE)推荐

1.7.5.2.8 智能键

每次在框选字符串时,如果要为框选的部分同时添加单引号或者双引号则可以进行该项设置,减少不必要的操作。
位置:设置\编辑器\常规\智能键→勾选 输入引号或者大括号时环绕选择范围
Python集成开发工具(IDE)推荐

1.7.5.2.9 取消参考线

Pycharm安装完成后会默认显示参考线,即在特定的列数会显示一条线,默认应该是300个字符处,这条线会影响美观。一般需要取消显示。
位置:设置\编辑器\常规\外观→取消勾选 显示强制换行和视觉参考线
Python集成开发工具(IDE)推荐

1.7.5.2.10 强制换行

如果在复制内容到Pycharm脚本编辑区域时有时候行内容特别长,会影响查看效果。这个时候就需要通过Pycharm进行强制换行。
位置:设置\编辑器\常规\代码样式→强制换行位置:1000(推荐)
Python集成开发工具(IDE)推荐

1.7.5.2.11 关闭一些检查

笔者是个强迫症患者,这款Pycharm对强迫症患者并不友好,尤其是新手。总会在编写脚本的时候出现一些小的拼写问题,这款IDE就会用下波浪线的方式疯狂提醒用户某个地方拼写有误或者不规范。我们可以按照实际情况取消一些检查项目。
位置:设置\编辑器\检查→展开Python,也可以通过搜索框进行搜索后修改。
Python集成开发工具(IDE)推荐

1.7.5.2.12 代码折叠

有时候打开比较大的脚本文件、模块文件时,里面包含了大量的类和方法,如果是默认展开的状态,我们看的不是很清晰。于是需要设置默认打开后自动折叠这些代码。
位置:设置\编辑器\常规\代码折叠→默认折叠\常规→勾选 方法内
Python集成开发工具(IDE)推荐

1.7.5.2.13 显示方法分隔符

类中的方法比较多时,这个功能还是挺实用的。
位置:设置\编辑器\常规\外观→勾选 显示方法分隔符
Python集成开发工具(IDE)推荐

1.7.5.2.14 最大文件打开数量

默认最大文件打开数量有限,之后再打开会将前面打开的文件自动关闭,使用起来不是很方便。
设置\编辑器\常规\编辑器选项卡→选项卡关闭策略\选项卡限制,建议设置成 15以上
Python集成开发工具(IDE)推荐

1.7.5.2.15 设置脚本头

由于编程习惯或者代码风格,我们经常需要在每个脚本的最上方写上一些特定的注释内容,比如:脚本的创建日期、时间、项目名称、IDE名称、脚本名、创建者等等。通过设置脚本头就可以在每次创建新的Python脚本时自动添加进去。
下面介绍一些内容中的关键字:
当前日期:${DATE}
当前时间:${TIME}
项目名称:${PROJECT_NAME}
脚本名:${NAME}
位置:设置\编辑器\文件和代码模块→文件\Python script
Python集成开发工具(IDE)推荐

推荐使用下面的模板:

#!/usr/bin/env Python
-*- coding:UTF-8 -*-
author:作者    date:2020/1/8 time:21:45
代码自动补齐----------------------------
p: parameter 参数
m: method 方法
f: function 函数
v: variable 变量
c: class 类
快捷键---------------------------------
复制上一行:crtl + D
删除这一行:crtl + Y
增加/删除注释:Ctrl + /
折叠代码:crtl + -       全部:crtl + shift + -
展开代码:crtl + +       全部:Ctrl + shift + +
回车换行:shift + Enter
查找:Ctrl + F
替换:Ctrl + R
自动排版:Ctrl + Alt + L
缩进:Tab
反缩进:Shift + Tab
找寻变量\函数\参数定义的位置:Ctrl + 鼠标单击
逐步选定相邻的代码:Ctrl + W
同时选定多行并且编辑:Alt + 鼠标左击,退出:Esc
变成指定代码块:Ctrl + Alt + T
1.7.5.2.16 文档字符串

文档字符串是对方法、函数等进行说明的字符。使用方式是在方法、函数等对象的代码块的第一行输入"""后按下回车就会自动添加文档字符串。
位置:设置\工具\Python集成工具 → Docstring(文档字符串),选择文档字符串格式为:Epytext即可。
Python集成开发工具(IDE)推荐

1.7.5.3 使用帮助

1.7.5.3.1 注意事项

1、不要用非官方的汉化补丁,容易出bug
2、菜单中的新建项目就是新建个文件夹
3、在脚本中输入# todo后就可以让Pycharm记录当前位置,以便提醒自己以后在补充内容。
4、右键py文件,可以复制文件路径或在资源管理器中打开

1.7.5.3.2 删除项目

1、关闭项目:菜单\文件\关闭项目
2、管理项目中删除项目:菜单\文件\打开最近\管理项目
3、在资源管理器中删除项目源文件

1.7.5.3.3 项目结构中内容根和源文件夹的区别

Python集成开发工具(IDE)推荐

内容根
1、设定好内容根之后,在内容根文件夹中所有的子孙文件夹中的py文件,使用from导入时,是从内容根所有的子文件夹开始计算路径的。
2、如果py文件中要访问文档或者素材则根据py文件所在的路径进行相对访问。
源文件夹
1、一旦将某个文件夹设置为源文件夹后,则可以直接导入该文件夹中的模块(相当于将这个文件夹添加到了Python路径中了。故此,Pycharm检查语法时不会报错,对于py文件只要符合导入规范在运行py程序时就不会报错)。
2、如果py文件中要访问文档或者素材则根据py文件所在的路径进行相对访问。

1.7.5.3.4 代码自动补齐

代码补齐的时候,在弹出的补齐选项前面会有类型提示,一般分为:
p: parameter 参数
m: method 方法
f: function 函数
v: variable 变量
c: class 类

1.7.5.3.5 快捷键

复制上一行:crtl + D 删除当前行:crtl + Y
增加/删除注释:Ctrl + /
折叠代码:crtl + - 全部:crtl + shift + -
展开代码:crtl + + 全部:Ctrl + shift + +
换行(保留后面的内容在当前行):shift + Enter
查找:Ctrl + F 替换:Ctrl + R
自动排版:Ctrl + Alt + L
缩进:Tab 取消缩进:Shift + Tab
找寻变量\函数\参数定义的位置:Ctrl + 鼠标单击,跳回去:Ctrl + Alt + ←或者→
逐步选定相邻的代码:Ctrl + W
同时选定多行并且编辑:Alt + 鼠标左击,退出:Esc
变成指定代码块:Ctrl + Alt + T
多行合并成一行:Ctrl + Shift + J
查找类被引用的地方:Ctrl + N
代码小写转大写:Ctrl + Shift + U

1.7.5.4 调试

1、点击在要调试的代码行的左侧以设置断点(会有一个红色的小圆圈)
2、在脚本空白处右键,在弹出的菜单中点击 调试(快捷键:Shift + F9)
3、程序会自动运行到断点处,此时会进入到debug模式。可以点击下方调试台中的各种调试按钮进行对脚本调试。
4、调试台中的调试器页面的右边可以很方便的查看程序中的各种变量及其值。
5、在调试台中,如果切换到控制台页面,可以在这里直接输入各种表达式和语句,立刻会的得到执行。在这里可以非常方便的查看某些变量的值以及各种表达式的结果。
Python集成开发工具(IDE)推荐

1.7.5.5 代码规范

在编写Python脚本时,Pycharm经常会对我们编写的不规范处、警告处、错误处进行提醒(代码的下方会出现波浪线)。遇到这种情况我们应当尽量去查看提示信息。对于错误的地方应当立刻改正。对于不规范处也应当尽量改正。
Python编写有个PEP8规范,明确了在编写Python脚本时应当要遵循的规范,我们应当在平时养成良好的代码编写习惯。方便自己以后的查看,也加强了代码的可读性。
Python PEP8 代码规范常见问题及解决方法

1.7.5.6 插件

尽管Pycharm的功能已经非常强大了,但是有些功能还是没有的。插件可以为Pycharm增添一些新的功能。
安装位置:设置\插件
注意:有些插件安装完需要重启才能生效,有些需要点击右下角的应用才能生效。如下图:
Python集成开发工具(IDE)推荐

以下是一些比较实用的插件。

1.7.5.6.1 Kite

kite是一款桌面应用程序,可以与现有的编辑器和终端进行集成化、并行运行,你可以将kite视为IDE的一个插件,它以大量的云端代码为基础,使用机器学习进行训练,从而预测下一步所需要写的代码,达到"智能编程"的效果。目前Kite支持的编辑器包括Sublime Text、emacs、vim、PyCharm和 Atom,支持windows和大多数linux操作系统。
Pycharm代码自动补全利器kite
自动编写Python程序的神器,Python 之父都发声力挺!
主页
注意:
1、需要在Pycharm中安装Kite插件
2、需要下载并安装Kite engine

1.7.5.6.2 activate-power-mode-x

码代码的时候带特效并且会在右上角记录当前码代码的速度。特效虽然酷炫,不过电脑配置不高的最好不要安装。
主页
Python集成开发工具(IDE)推荐

1.7.5.6.3 translation

可以用来进行翻译。这要比再打开一个浏览器,切换到百度翻译要快捷许多。
主页

1.7.5.6.4 json parser

更方便的查看json数据。

1.7.5.6.5 rainbow brackets

以不同颜色显示嵌套括号,默认的所有嵌套括号都一个颜色,有时会很不方便,傻傻分不清。
注意:安装material theme ui后无需安装这个插件

1.7.5.6.6 background image plus

可以添加指定图片为Pycharm编写代码时的背景图片,毕竟谁能拒绝边敲代码边看二次元萌妹子图片呢。

1.7.5.6.7 material theme ui

修改主题,是Pycharm中最流行的一款修改ui的插件。

1.7.5.6.8 statistic

查看你的项目代码数据,比如文件数量、代码量、注释数量等等。

1.7.5.6.9 RegexpTester

测试正则表达式。

1.7.5.6.10 CodeGlance2

如果你曾使用过Sublime Text,切换到其他代码编辑器,或多或少会有些不习惯,因为很少有会像Sublime那样自带一个预览功能的滚动条。
在PyCharm中,就没有解决不了的问题,如果有,那么就装个插件。
要想在PyCharm中使用这个预览滚动条,只要装上CodeGlance这个插件。

1.7.5.6.11 sourcery

Sourcery 是一个人工智能驱动的编码助手,它可以帮助你更快地编写更好的Python 代码。它通过动态提供重构建议来工作,您可以立即将这些建议集成到您的代码中。

1.7.5.6.12 Mongo Plugin

这个插件一看名字就跟mongodb有关,Mongo Plugin其实就是一款基于Pycharm的可视化数据库工具,通过它能可以很方便地对数据库进行可视化操作。

1.7.5.6.13 wakatime

wakatime是一款记录 coding 时间的工具,支持当下大多数主流的IDE,如果想让wakatime监控你在Pycharm中的coding时间,就要给Pycharm安装这个插件。

顾名思义,它可以让你在 Pycharm 中使用 Markdown 语言。

Original: https://www.cnblogs.com/sibide/p/16071647.html
Author: crleep
Title: Python集成开发工具(IDE)推荐



相关阅读1

Title: 【Python从入门到精通】(三)Python的编码规范,标识符知多少?

您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦
这是Pyhon系列文章的第三篇,本文主要介绍Python程序的编码规范。
干货满满,建议收藏,需要用到时常看看。 小伙伴们如有问题及需要,欢迎踊跃留言哦~ ~ ~。

前言

上一篇文章我们介绍如何运行Python程序,如何安装PyCharm开发工具以及如何用PyCharm来运行Python程序,这些都只是开发前的准备工作而已,也就是说仅仅是弄好了脚手架。接下来就是开始编码了。不过在编码之前我们还是先需要了解一下 Python的编码规范。为什么要了解编码规范呢?不看行不行呀! 如果我们想在别人看我们代码的时候大骂一声,卧槽,这代码跟shi一样,鬼看的懂呀。那就不看吧,写自己的代码让别人说去,哈哈哈哈。
Python集成开发工具(IDE)推荐

注释

首先介绍的是Python的注释,Python的注释分为两种:单行注释和多行注释。

  1. 单行注释
    Python使用 # 号作为单行注释的符号,其语法格式为: #注释内容 从#号开始直到这行结束为止的所有内容都是注释。例如:
# 这是单行注释
  1. 多行注释
    多行注释指一次注释程序中多行的内容(包含一行) ,Python使用三个连续的 单引号''' 或者三个连续的 双引号""" 注释多行内容。其语法格式是如下:
'''
三个连续的单引号的多行注释
注释多行内容
'''

或者

"""
三个连续的双引号的多行注释
注释多行内容
"""

多行注释通常用来为Python文件、模块、类或者函数等添加版权或者功能描述信息(即文档注释)

缩进规则

不同于其他编程语言(如Java,或者C)采用大括号 {}分割代码块,Python采用 代码缩进冒号 : 来区分代码块之间的层次。如下面的代码所示:

a = -100
if a >= 0:
    print("输出正数" + str(a))
    print('测试')
else:
    print("输出负数" + str(a))

其中第一行代码 a = -100和第二行代码 if a >= 0:是在同一作用域(也就是作用范围相同),所以这两行代码并排。而第三行代码 print("输出正数" + str(a)) 的作用范围是在第二行代码里面,所以需要缩进。第五行代码也是同理。第二行代码通过冒号和第三行代码的缩进来区分这两个代码块。
Python的缩进量可以使用空格或者Tab键来实现缩进, 通常情况下都是采用4个空格长度作为一个缩进量的
这里需要注意的是同一个作用域的代码的缩进量要相同,不然会导致IndentationError异常错误,提示缩进量不对,如下面代码所示:第二行代码 print("输出正数" + str(a)) 缩进了4个空格,而第三行代码 print('测试')只缩进了2个空格。

if a >= 0:
    print("输出正数" + str(a))
  print('测试')

在Python中,对于类定义,函数定义,流程控制语句就像前面的 if a>=0:,异常处理语句等,行尾的冒号和下一行缩进,表示下一个代码块的开始,而缩进的结束则表示此代码的结束。

编码规范

说完了代码的缩进规则之后,接下来看看Python的编码规范,Python采用PEP 8作为编码规范,其中PEP是Python Enhancement Proposal(Python增强建议书) 的缩写,8代表的是Python代码的样式指南。这里介绍几个初学者需要掌握的编码规范

  1. 每个import 语句只导入一个模块,尽量避免一次导入多个模块
#推荐
import sys
import os
#不推荐
import sys,os
  1. 不要在行尾添加分号,也不要用分号将两条命令放在同一行,不推荐下面的写法
print('你好');print('我好');
  1. 建议每行不超过80个字符,如果超过,建议使用小括号将多行内容隐式的连接起来,而不推荐使用反斜杠\进行连接。
#推荐
s=('没有耕耘就没有收获,'
   '好好学习天天向上')
#不推荐
s='没有耕耘就没有收获,' \
  '好好学习天天向上'

其他的可参考官网 PEP8官网

标识符命令规范

标识符就是一个名字,就好像是我们每个人都一个属于自己的名字一样的。它的主要作用就是作为变量,函数,类,模块以及其他对象的名称。

标识符遵循的规则

标识符不是随便胡乱命令的,也是要遵循一定的规则的。应该要遵循下列规则

  1. 标识符是由字符(AZ和az)、下划线和数字组成,但第一个字符不能是数字
#合法示范
userId
user_id
user2

非法的标识符

2user
  1. 标识符不能和Python中的保留字相同,有关保留字,后续章节会介绍
  2. Python中的标识符中,不能包含空格、@、%以及$等特殊字符串。比如这样 @user
  3. 在Python中,标识符中的字母是严格区分大小写的,也就是说。两个同样的单词,如果大小写格式不一样,那么代表的意义也是完全不同的,比如,下面这3个变量之间,就是完全独立的,毫无关系
number=2
Number=2
NUMBER=3
  1. Python中,以 下划线开头的标识符有特殊含义,例如:
  2. 以单下划线开头的标识符(如_height),表示不能直接访问的类属性,其无法通过 from ... import * 的方式导入
  3. 以双下划线开头的标识符(如__add)表示类的私有成员
  4. 以双下划线作为开头和结尾的标识符(如__init__)是专用标识符
    6.不同场景中的标识符,其名称也有一定的规范可循
  5. 当标识符用作模块名时,应尽量短小,并且全部使用小写字母,可以使用下划线分割多个字母,例如 user_login
  6. 当标识符用作包的名称时,应尽量短小,也全部使用小写字母,不推荐使用下划线,例如: com.jay,com.jay.er等
  7. 当标识符用作类名时,应采用单词首字母大写的形式,例如,定义一个学生类,可以命名为Student
  8. 模块内部的类名,可以采用"下划线+首字母大写"的形式,如_Student
  9. 函数名、类中的属性名和方法名,应全部使用小写字母,多个单词之间可以用下划线分割
  10. 常量命令全部使用大写字母,单词之间可以用下划线分割。

关键字

说完了标识符的命名规范,本文也接近尾声了,最后要介绍的是Python中的关键字,前面说了标识符的命令不用使用关键字,那么Python中有哪些关键词呢?可以通过如下语句进行查看

>>> import keyword
>>> 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关键词一览表

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

总结

本文主要介绍了Python的编码规范,包括Python的注释,编码规范,标识符命名等等,希望对读者朋友们有所帮助。

我是码农飞哥,再次感谢您读完本文
全网同名【码农飞哥】。不积跬步,无以至千里,享受分享的快乐
我是码农飞哥,再次感谢您读完本文

Original: https://www.cnblogs.com/Fly-Bob/p/15480145.html
Author: 码农飞哥
Title: 【Python从入门到精通】(三)Python的编码规范,标识符知多少?

相关阅读2

Title: 初学python写个自娱自乐的小游戏

一、游戏规则

下面我们通过一个"猜数字"的小游戏来看看如何使用while循环。猜数字游戏的规则是:计算机出一个1到100之间的随机数,玩家输入自己猜的数字,计算机给出对应的提示信息(大一点、小一点或猜对了),如果玩家猜中了数字,计算机提示用户一共猜了多少次,游戏结束,否则游戏继续。

二、简易版程序

1、代码

点击查看代码

#猜数字游戏
import random
Ai = random.randint(1, 100)
co = 0
while True:
    co += 1
    num = int(input('请输入: '))
    if Ai > num:
        print('大一点')
    elif Ai < num:
        print('&#x5C0F;&#x4E00;&#x70B9;')
    else:
        print('&#x606D;&#x559C;&#x4F60;&#x731C;&#x5BF9;&#x4E86;!')
        break
print(f'&#x4F60;&#x603B;&#x5171;&#x731C;&#x4E86;{co}&#x6B21;')
if co > 7:
    print('&#x4F60;&#x7684;&#x667A;&#x5546;&#x4F59;&#x989D;&#x660E;&#x663E;&#x4E0D;&#x8DB3;')

2、问题:

用户如果输入非整数,程序将会报错,游戏无法继续

三、改版1

1、解决:

通过if判断和break语句解决用户误输入非整数类型的报错

点击查看代码

import random
Ai = random.randint(1, 100)
co = 0
a = input('&#x63A5;&#x4E0B;&#x6765;&#x6211;&#x4EEC;&#x5C06;&#x5F00;&#x59CB;&#x731C;&#x6570;&#x5B57;&#x6E38;&#x620F;&#xFF0C;Are you ready! y/n: ')
if a == 'y':
  while True:
      co += 1
      num = int(input('&#x8BF7;&#x8F93;&#x5165;: '))
      if Ai > num:
          print('&#x5927;&#x4E00;&#x70B9;')
      elif Ai < num:
          print('&#x5C0F;&#x4E00;&#x70B9;')
      else:
          print('&#x606D;&#x559C;&#x4F60;&#x731C;&#x5BF9;&#x4E86;!')
          break
  print('&#x4F60;&#x603B;&#x5171;&#x731C;&#x4E86;{co}&#x6B21;')
  if co > 7:
      print('&#x4F60;&#x7684;&#x667A;&#x5546;&#x4F59;&#x989D;&#x660E;&#x663E;&#x4E0D;&#x8DB3;')
elif a == 'n':
    print('&#x7A0B;&#x5E8F;&#x8FD0;&#x884C;&#x7ED3;&#x675F;')
else:
    print('&#x8F93;&#x5165;&#x65E0;&#x6548;&#xFF0C;&#x7A0B;&#x5E8F;&#x7EC8;&#x6B62;')

2、问题:

通过解决了用户误输入报错的问题,程序基本正常运行,也提升了用户和程序的交互性。但是又发现了新的问题,用户交互性不够好,程序只能运行一次就自动结束。

四、改版2

1、解决:

通过嵌套if语句使得while语句内部的程序可以多次运行,为了避免if语句内部用户误输入再次报错,再使用while嵌套一层,然后使用break避免该结束的语句重复运行

点击查看代码

import random
Ai = random.randint(1,100)
a = input('&#x63A5;&#x4E0B;&#x6765;&#x6211;&#x4EEC;&#x5C06;&#x5F00;&#x59CB;&#x731C;&#x6570;&#x5B57;&#x6E38;&#x620F;&#xFF0C;Are you ready! y/n: ')
while True:
  if a == 'y':
    co = 0
    while True:
      num = int(input('&#x8BF7;&#x8F93;&#x5165;&#x4E00;&#x4E2A;1-100&#x4E4B;&#x95F4;&#x7684;&#x6570;&#x5B57;&#xFF1A;'))
      co +=1
      if Ai > num:
        print('&#x4F60;&#x8F93;&#x5165;&#x7684;&#x6570;&#x5B57;&#x5C0F;&#x4E86;')
      elif Ai < num:
        print('&#x4F60;&#x8F93;&#x5165;&#x7684;&#x6570;&#x5B57;&#x5927;&#x4E86;')
      elif Ai == num:
        if co < 7:
          print(f'&#x606D;&#x559C;&#x4F60;&#x731C;&#x5BF9;&#x4E86;&#xFF01;&#x4F60;&#x4E00;&#x5171;&#x7528;&#x4E86;{co}&#x6B21;&#xFF0C;&#x5B9E;&#x5728;&#x4F18;&#x79C0;')
          a = input('&#x8BF7;&#x95EE;&#x662F;&#x5426;&#x7EE7;&#x7EED;&#x6E38;&#x620F;y/n: ')
          if a == 'n':
            break
        else:
          print(f'&#x606D;&#x559C;&#x4F60;&#x731C;&#x5BF9;&#x4E86;&#xFF01;&#x4F46;&#x662F;&#x4F60;&#x4E00;&#x5171;&#x7528;&#x4E86;{co}&#x6B21;&#xFF0C;&#x5F88;&#x9057;&#x61BE;&#x7684;&#x544A;&#x8BC9;&#x4F60;&#xFF0C;&#x4F60;&#x7684;&#x667A;&#x5546;&#x4F59;&#x989D;&#x660E;&#x663E;&#x4E0D;&#x8DB3;')
          a = input('&#x8BF7;&#x95EE;&#x662F;&#x5426;&#x7EE7;&#x7EED;&#x6E38;&#x620F;y/n: ')
          if a == 'n':
            break
      else:
        print('&#x4F60;&#x8F93;&#x5165;&#x7684;&#x662F;&#x65E0;&#x6548;&#x7684;&#x6570;&#x5B57;&#xFF0C;&#x7A0B;&#x5E8F;&#x81EA;&#x52A8;&#x7EC8;&#x6B62;')
        break
  elif a == 'n':
    print('&#x7A0B;&#x5E8F;&#x8FD0;&#x884C;&#x7ED3;&#x675F;')
    break
  else:
    print('&#x8F93;&#x5165;&#x65E0;&#x6548;&#xFF0C;&#x7A0B;&#x5E8F;&#x7EC8;&#x6B62;')
    break

2、问题:

现在基本解决了用户误输入报错和交互性的问题,可以多次正常运行了,可是运行多次后发现程序提示用户输入次数是开始到程序结束的次数,但是预期希望的是每一次开始都是重新计算次数

五、改版三

1、解决:

通过每次重新开始都给co这个变量赋值为0,这样就解决了程序每次开始不重新计数的问题了

点击查看代码

import random
Ai = random.randint(1,100)
a = input('&#x63A5;&#x4E0B;&#x6765;&#x6211;&#x4EEC;&#x5C06;&#x5F00;&#x59CB;&#x731C;&#x6570;&#x5B57;&#x6E38;&#x620F;&#xFF0C;Are you ready! y/n: ')
while True:
  if a == 'y':
    co = 0
    while True:
      num = int(input('&#x8BF7;&#x8F93;&#x5165;&#x4E00;&#x4E2A;1-100&#x4E4B;&#x95F4;&#x7684;&#x6570;&#x5B57;&#xFF1A;'))
      co +=1
      if Ai > num:
        print('&#x4F60;&#x8F93;&#x5165;&#x7684;&#x6570;&#x5B57;&#x5C0F;&#x4E86;')
      elif Ai < num:
        print('&#x4F60;&#x8F93;&#x5165;&#x7684;&#x6570;&#x5B57;&#x5927;&#x4E86;')
      elif Ai == num:
        if co < 7:
          print(f'&#x606D;&#x559C;&#x4F60;&#x731C;&#x5BF9;&#x4E86;&#xFF01;&#x4F60;&#x4E00;&#x5171;&#x7528;&#x4E86;{co}&#x6B21;&#xFF0C;&#x5B9E;&#x5728;&#x4F18;&#x79C0;')
          a = input('&#x8BF7;&#x95EE;&#x662F;&#x5426;&#x7EE7;&#x7EED;&#x6E38;&#x620F;y/n: ')
          co = 0
          if a == 'n':
            break
        else:
          print(f'&#x606D;&#x559C;&#x4F60;&#x731C;&#x5BF9;&#x4E86;&#xFF01;&#x4F46;&#x662F;&#x4F60;&#x4E00;&#x5171;&#x7528;&#x4E86;{co}&#x6B21;&#xFF0C;&#x5F88;&#x9057;&#x61BE;&#x7684;&#x544A;&#x8BC9;&#x4F60;&#xFF0C;&#x4F60;&#x7684;&#x667A;&#x5546;&#x4F59;&#x989D;&#x660E;&#x663E;&#x4E0D;&#x8DB3;')
          a = input('&#x8BF7;&#x95EE;&#x662F;&#x5426;&#x7EE7;&#x7EED;&#x6E38;&#x620F;y/n: ')
          co = 0
          if a == 'n':
            break
      else:
        print('&#x4F60;&#x8F93;&#x5165;&#x7684;&#x662F;&#x65E0;&#x6548;&#x7684;&#x6570;&#x5B57;&#xFF0C;&#x7A0B;&#x5E8F;&#x81EA;&#x52A8;&#x7EC8;&#x6B62;')
        break
  elif a == 'n':
    print('&#x7A0B;&#x5E8F;&#x8FD0;&#x884C;&#x7ED3;&#x675F;')
    break
  else:
    print('&#x8F93;&#x5165;&#x65E0;&#x6548;&#xFF0C;&#x7A0B;&#x5E8F;&#x7EC8;&#x6B62;')
    break

六、总结

以上是目前运行程序发现并解决问题的一些思路,这个程序对高手而言或许不够简洁,但是基于目前知识有限,希望大家能够提出建议,还有运行中要是有发现其他问题欢迎提出,共同进步。最后小秀一把一次就猜对成绩,嘿嘿!
Python集成开发工具(IDE)推荐

Original: https://www.cnblogs.com/kxsm/p/15450700.html
Author: L杂货店
Title: 初学python写个自娱自乐的小游戏

相关阅读3

Title: Python中的Pandas模块

目录

​Pandas​

​Series​

​序列的创建​

​序列的读取 ​

​DataFrame​

​DataFrame的创建 ​

​DataFrame数据的读取​

​Panel​

​Panel的创建 ​

Pandas

Pandas( Python Data Analysis Library )是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一

python中有三种数据结构

  1. Series:一维数组,与Numpy中的一维array类似。二者与Python基本的数据结构List也很相近,其区别是:List中的元素可以是不同的数据类型,而array和Series中则只允许存储相同的数据类型,这样可以更有效的使用内存,提高运算效率。Time- Series:以时间为索引的Series。
  2. DataFrame:二维的表格型数据结构。很多功能与R中的data.frame类似。可以将DataFrame理解为Series的容器。DataFrame是用的最多的数据结构
  3. Panel :三维的数组,可以理解为DataFrame的容器。

pandas可以读取很多种的数据,用的比较多的是读取 htm、json、csv的数据

import pandasdata1=pandas.read_html('1.html')   #读取html格式数据data2=pandas.read_json('2.json')   #读取json格式数据data3=pandas.read_csv('3.csv')     #读取csv格式的数据

Series

系列(Series)是能够保存任何类型的数据(整数,字符串,浮点数,Python对象等)的一维标记数组。轴标签统称为索引

Series的创建函数:pandas.Series( data, index, dtype,copy )

参数

描述

data

数据采取各种形式,如:ndarray,list,constants

index

索引值必须是唯一的和散列的,与数据的长度相同。默认 np.arange(n) 如果没有索引被传递

dtype

dtype 用户数据类型。如果没有,将推断数据类型

copy

复制数据,默认为 false

序列的创建

创建一个空series序列

Python集成开发工具(IDE)推荐

从字典创建一个series序列

Python集成开发工具(IDE)推荐

序列的读取

读取直接用 ['行名'],序列只可以读取行的内容

Python集成开发工具(IDE)推荐

DataFrame

数据帧(DataFrame)是二维数据结构,即数据以行和列的表格方式排列。
数据帧(DataFrame)的功能特点:

  • 潜在的列是不同的类型
  • 大小可变
  • 标记轴(行和列)
  • 可以对行和列执行算术运算

DataFrame的创建函数:pandas.DataFrame( data, index, columns, dtype, copy)

参数

描述

data

数据采取各种形式,如:ndarray,series,map,lists,dict,constant和另一个DataFrame

index

对于行标签,要用于结果帧的索引是可选缺省值 np.arrange(n) ,如果没有传递索引值

columns

对于列标签,可选的默认语法是 np.arange(n) 这只有在没有索引传递的情况下才是这样

dtype

每列的数据类型

copy

如果默认值为false,则此命令用于复制数据

DataFrame的创建

创建一个空DataFrame序列

Python集成开发工具(IDE)推荐

从字典创建一个series序列(必须加index)

Python集成开发工具(IDE)推荐

DataFrame数据的读取

读取列,直接 ['列名']

Python集成开发工具(IDE)推荐

读取行

Python集成开发工具(IDE)推荐

Python集成开发工具(IDE)推荐

Panel

面板(Panel)是3D容器的数据。面板数据一词来源于计量经济学,部分源于名称:Pandas - pan(el)-da(ta)-s。
3轴(axis)这个名称旨在给出描述涉及面板数据的操作的一些语义。它们是

  • items - axis 0,每个项目对应于内部包含的数据帧(DataFrame)
  • major_axis - axis 1,它是每个数据帧(DataFrame)的索引(行)
  • minor_axis - axis 2,它是每个数据帧(DataFrame)的列

Panel的创建函数:pandas.Panel(data, items, major_axis, minor_axis, dtype, copy)

参数

说明

data

数据采取各种形式,如:ndarray,series,map,lists,dict,constant和另一个数据帧 DataFrame

items

axis=0

major_axis

axis=1

minor_axis

axis=2

dtype

每列的数据类型

copy

复制数据,默认 false

Panel的创建

创建一个空Panel序列

Python集成开发工具(IDE)推荐

Original: https://blog.51cto.com/csnd/5500265
Author: csnd1024
Title: Python中的Pandas模块