-
2020-07-27 17:51:03
如果说到什么是好代码,我们肯定都能说出一堆规则,例如使用一致的格式和缩进、使用清晰的变量名和方法名、在必要时提供文档与注释、不要过度精简代码等等。
但是对于什么是烂代码,你有比较清晰的认识吗?
在 GitHub 上有一个新项目,它描述了「最佳垃圾代码」的十九条关键准则。从变量命名到注释编写。这些准则将指导你写出最亮眼的烂代码。
为了保持与原 GitHub 项目一致的风格,下文没有进行转换。读者们可以以相反的角度来理解所有观点,这样就能完美避免写出垃圾代码。
repo 地址: https://github.com/trekhleb/state-of-the-art-shitcode
当然,以下十九条垃圾代码书写准则并没有面面俱到,如果读者们发现有一些难以忍受的烂代码习惯,也可以留言发表你的看法。
第一条:打字越少越好
如果我们键入的东西越少,那么就有越多的时间去思考代码逻辑等问题。如下所示,「Good」表示遵循该规则的示例,Bad 表示没遵循该规则的示例。
手牵手教你写代码,从入门到精通
第二条:****变量/函数混合命名风格我们需要混合命名方法与变量,这样才能体现命名的多样性。
手牵手教你写代码,从入门到精通
第三条:****不要写注释反正代码都看得懂,为什么要写注释?或者说,反正没人看我的代码,为什么要写注释?手牵手教你写代码,从入门到精通
第四条:****使用母语写注释如果你违反了第三条规则,那么至少写注释需要用你的母语或者其它语言。如果你的母语是英语,那么你也算违反了这条规则。既然编程语言绝大多数都是用英文,那么为什么不用其它语言注释一下?手牵手教你写代码,从入门到精通
第五条:****尽可能混合不同的格式同样,为了代码的多样性,我们需要尽可能混合不同的格式,例如单引号或双引号。如果它们的语义相同,那就应该混用。手牵手教你写代码,从入门到精通
第六条:****尽可能把代码写成一行如果一系列参数与方法都是一起实现的,那么代码也要写在一起。手牵手教你写代码,从入门到精通
第七条:****发现错误要保持静默当你发现某些错误时,其他人不需要了解它,因此不需要打印出日志或 Traceback。手牵手教你写代码,从入门到精通
第八条:****广泛使用全局变量使用全局变量,是面向「全球化」不可或缺的部分。手牵手教你写代码,从入门到精通
第九条:****构建备用变量以防万一,我们需要创建一些备用变量,在需要时随时调用它们。手牵手教你写代码,从入门到精通
第十条:****Type 使用需谨慎一般不要指定变量类型或者经常做类型检查,无类型才是最好的类型。手牵手教你写代码,从入门到精通
第十一条:****准备「Plan B」你需要准备一些运行不到的代码(unreachable code),它们可以作为你的「Plan B」。手牵手教你写代码,从入门到精通
第十二条:****嵌套的三角法则如果代码有一些嵌套结构,或者说缩进空行的结构,三角法则是最漂亮的。手牵手教你写代码,从入门到精通
第十三条:****混合缩进我们需要避免采用缩进,因为缩进会使复杂代码在编辑器中占用更多的空间。如果一定要采用缩进,那么就使用混合缩进策略。当然,这种策略在 Python 中是行不通的,因为它靠缩进来确定代码结构。手牵手教你写代码,从入门到精通
第十四条:****不要锁住依赖项每一次要安装新库时,更新已有的依赖项。为什么要维持之前的版本呢,我们需要时刻保持最新的第三方代码库。手牵手教你写代码,从入门到精通
第十五条:****长函数比短函数好不要将程序整体逻辑分割为一些代码块,要是 IDE 突然不行了,它找不到必要的文件或函数怎么办。因此把代码写在一个主体函数中,并且不再维护额外的函数导入或代码文件,那么这样的方法是最稳定的。单个文件一万行代码是没问题的,单个函数一千行代码也是没问题的。第十六条:****代码不需要做特定测试这些测试通常是重复且无意义的工作。
第十七条:****尽量避免重复代码按你的想法写代码,尤其是在小团队中,毕竟这是「自由」准则。
第十八条:****构建新项目不需要 README 文档在项目前期,我们可以暂时保持这种状态。
第十九条:****保存不必要的代码在写代码的过程中,经常会产生很多测试代码。这些代码也是非常重要的资料,因此不能删除掉,最多只能注释掉。
更多相关内容 -
Java编程入门文档教程合集
2019-07-22 15:24:48资源名称:Java编程入门文档教程合集资源目录:【】10个用JAVA写的系统打包!是学习的好资料!【】Java入门深入理解嵌套类和内部类【】Java和JSP编程的六个常见问题【】JAVA基础知识【】Java编程语言.(第三版)【】... -
Python编程入门经典源代码
2019-01-05 11:38:02Python编程入门经典教程配套源代码,按照章节详细分类,容易上手 Python编程入门经典教程配套源代码,按照章节详细分类,容易上手 -
VS2010 MFC编程入门教程
2020-10-22 20:04:33C++ 编程入门系列给大家讲了 C++ 的编程入门知识,大家对 C++ 语言在语法和设计思想上应该有了一定的了解。在这套 VS2010/MFC编程入门教中,将会给大家讲解怎样使用 VS201进行可视化编程。 -
Qt教程,Qt5编程入门教程(非常详细).pdf
2021-11-18 11:44:10Qt教程 -
Java SE编程入门教程 javaGUI编程快速入门(1)(共82页).pptx
2021-12-04 10:47:04Java SE编程入门教程 javaGUI编程快速入门(1)(共82页).pptx Java SE编程入门教程 java包装器(共9页).pptx Java SE编程入门教程 java反射机制(共16页).pptx Java SE编程入门教程 java泛型(共11页).pptx Java ... -
ARDUINO零基础入门教程【代码编程篇】
2021-06-18 05:52:56从硬件方面着手带您学会ARDUINO的硬件原理和编程。 只有懂了硬件原理才能更清楚代码的含义。 零基础入门,快速学会ARDUINO,上手做自己的小设计。 从小白到大神之间就缺这部视频o(* ̄︶ ̄*)o -
Python编程:从入门到实践_python3_pyT_python_python教程_
2021-10-04 03:53:13适合作为学习python的第一本书,作为一个入门的python教材,可以说这个通俗易懂了,这本书用了python3进行编程的,不同于python核心编程那本书用第二版,这本书上手快 -
10行代码带你入门Windows编程
2022-04-22 12:21:08手把手带你入门WindowsWindows编程——Hello World
开发工具
Visual Studio 2013
效果展示
源代码
#include <Windows.h> //头文件 //主函数 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPreInstance, LPSTR lpCmdLine, int nCmdShow) { //弹出一个消息提示框,变量 n 用来接受用户的选择 int n = MessageBox(NULL, L"Hello World", L"温馨提示", MB_YESNOCANCEL | MB_ICONEXCLAMATION); if (n == IDYES) //用户选择“是” { MessageBox(NULL, L"你点了“是”", L"提示", MB_OK); } else if (n == IDNO) //用户选择“否” { MessageBox(NULL, L"你点了“否”", L"提示", MB_OK); } else if (n == IDCANCEL) //用户选择“取消” { MessageBox(NULL, L"你点了“取消”", L"提示", MB_OK); } return 0; }
主函数
不同于我们熟知的 C/C++ 的 main 函数,Windows 用的是 WinMain,并且前面还多了个 WINAPI,下面我们来详细说一下。
窗口程序的入口函数:WinMain
控制台窗口应用程序入口函数:main什么是 WINAPI ?
WINAPI:函数调用约定。
约定了:
1、函数的入栈方式——从右到左
2、由谁来平衡堆栈WINAPI、CALLBACK、APIENTRY : 从右往左入栈 ,本质:__stdcall(标准调用方式)
WINAPIV : 从右往左入栈,本质:__cdecl
转到定义,发现它们是这样的:
#define CALLBACK __stdcall
#define WINAPI __stdcall
#define WINAPIV __cdecl
#define APIENTRY WINAPI主函数参数
HINSTANCE
定义:应用程序实例句柄类型。
转到定义:
DECLARE_HANDLE(HINSTANCE);#define DECLARE_HANDLE(HINSTANCE)
struct HINSTANCE__
{
int unused;
};
typedef struct HINSTANCE__* HINSTANCE由此,可以看出其本质为:结构体指针
hInstancce
定义:当前应用程序实例句柄
hPreInstance
定义:当前程序的前一个实例句柄
在32位和64位的机器上,已经被废弃了,现在不再使用时,值为 NULL
在16位机器上使用LPSTR
typedef CHAR *NPSTR, *LPSTR, PSTR;
上式表示 CHAR <=> NPSTR <=> LPSTR <=> PSTR
typedef char CHAR;所以 ,LPSTR <=> char*
ps : LPCTSRT <=> const char*lpCmdLine
lpCmdLine是一个以空终止的字符串,指定传递给应用程序的命令行参数。
例如:在C盘下有一个 a.txt 文件,当我们用鼠标双击这个文件时将启动记事本程序(notepad.exe),此时系统会将 C:\a.txt 作为命令行参数传递给记事本程序的 WinMain 函数,记事本程序在得到这个文件的全路径名后,就在窗口中显示该文件的内容。nCmdShow
窗口显示方式:最大化,最小化,普通,正常显示
MessageBox
Windows编程中经常用到的一个API,作用是弹出一个消息提示框
int WINAPI MessageBox (
In_opt HWND hWnd,
In_opt LPCTSTR lpText,
In_opt LPCTSTR lpCaption,
In UINT uType
);详细解释
第一个参数:
HWND : 窗口句柄类型(可以理解为窗口的ID)
hWnd : 父窗口句柄,如果没有父窗口,就写NULL
HWND 本质为结构体指针DECLARE_HANDLE (HWND);
#define DECLARE_HANDLE(name)
struct HWND__
{
int unused;
};
typedef struct HWND__ *HWND第二个参数:
LPCTSTR :显示内容
LPCTSTR 在 Unicode 编码情况下typedef LPCWSTR PCTSTR, LPCTSTR;
typedef CONST WCHAR *LPCWSTR, *PCWSTR;
#define CONST const
typedef wchar_t WCHAR;本质:const wchar_t* <=> LPCTSTR
LPCTSTR 在 多字节字符集 情况下
typedef LPCTSTR PCTSTR, LPCTSTR; LPCTSTR <=> PCTSTR <=> LPCTSTR
typedef CONST CHAR *LPCWSTR, PCWSTR; CONST CHAR <=> LPCTSTR <=> PCWSTR
#define CONST const CONST <=> const
typedef char CHAR; // char<=> CHAR本质:const char* <=> LPCTSTR
第三个参数:标题
第四个参数:
非客户区的按钮和图标规则
按钮和图标的组合
不能按钮和按钮组合
不能图标和图标组合按钮主要有
按钮 功能 MB_OK 确定 MB_YESNO 是、否 MB_OKCANCEL 确定、取消 MB_YESNOCANCEL 是、否、取消 MB_RETRYCANCEL 重试、取消 MB_ABORTRETRYIGNORE 中止、重试、忽略 图标主要有
图标 功能 MB_ICONEXCLAMATION An exclamation-point icon appears in the message box. MB_ICONINFORMATION An icon consisting of an “I” in a circle appears in the message box. MB_ICONQUESTION A question-mark icon appears in the message box. MB_ICONSTOP A stop-sign icon appears in the message box. 小知识
API
应用程序编程接口(Aplication Programma Interface)
例如C语言中的 printf,scanf,strlen 函数
Windows API函数SDK
软件开发包(Software Development Kit)
包含了API函数库,帮助手册,辅助工具,使用文档窗口
包含标题栏、菜单栏、系统菜单、最下化框,最大化框,滚动
窗口主要分为 客户区 和 非客户区句柄
标志着一种资源
窗口句柄、图标句柄、光标句柄、菜单句柄、进程句柄、线程句柄这次的分享就到这里啦
-
(完整版)c语言初学必背代码.docx
2021-05-20 11:37:03//1. 成绩判断#include int main(){成绩 int score;printf(" 请输入你的成绩 :\n"); scanf("%d", &score);判断if(score >=0 && score < 60){printf(" 不及格 \n");}else if(60 <...//1. 成绩判断
#include
int main()
{
成绩 int score;
printf(" 请输入你的成绩 :\n"); scanf("%d", &score);
判断
if(score >=0 && score < 60)
{
printf(" 不及格 \n");
}
else if(60 <= score && score < 80)
{
printf(" 中等 \n");
}
else if(80 <= score && score < 100)
{
printf(" 优秀 \n");
}
else
{
printf(" 输入错误 !\n");
}
}
printf("sum=%d\n", sum);
}
//3. 最大公约数
#include
求 m,n 的最大公约数 int main()
{
int m, n; int i, k;
printf(" 请输入两个数 :"); scanf("%d %d", &m, &n);
三元运算符找较小的那个 k = m < n ? m : n;
从较小的那个数倒着往前找 for(i=k; i>=1; i--)
{
这是公约数
if((m % i == 0) && (n % i ==0))
{
printf(" 最大公约数是 %d\n", i); break; // 跳出 for 循环
}
}
}
//4. 最小公倍数
//2. 计算 1 到 100 的和
#include #include
int main()
{// 求 m,n 的最小公倍数
int sum = 0; // 存结果变量int main()
int i;{
for(i=1;i <= 100;i++)int m, n;
{int max, min;//m,n中较大 ,较小的那
sum = sum + i;个
}int k;//max, 2*max, 3*max, .....
printf(" 请输入两个数 :");
scanf("%d %d", &m, &n);
也可以交换 m,n,保证 m 小 n 大 max = m > n ? m : n;
min = m < n ? m : n;
k = max; // 从 max 开始 while(k % min != 0) {
k += max;// 每次倍增
}
printf(" 最小公倍数是 %d\n", k);
}
//5. 金字塔
#include
金字塔 int main()
{
int i;// 外层
int j;// 内层
for(i=1;i<=10;i++)
{
当前是在第 i 行
先补空格 10-i 个 for(j=1;j<=10-i;j++)
{
printf(" ");
}
再打 2i-1 个 * for(j=1;j<=2*i -1;j++)
{
printf("*");
}
printf("\n");
}
}
//6. 九九乘法表
#include
打印九九乘法表 int main()
{
int i,j;
for(i=1;i<=9;i++)// 外层一定是 9 行
{
for(j=1; j<=i; j++) // 内层第几行走几遍
{
printf("%d*%d=%d ", i, j, i*j);
}
printf("\n");
}
}
//7. 百钱买百鸡
#include
/**
百钱买百鸡 ,类似 1,2,5 凑 100 银币问题
*/
int main2()
{
int i,j;// 公鸡,母鸡个数
for(i=0; i<=20; i++)// 公鸡
{
for(j=0; j<=33; j++)// 母鸡
{
if( (15*i + 9*j + (100-i-j)) == 300)
{
printf(" 公鸡 %d,母鸡 %d,小
鸡%d\n", i, j, 100-i-j);
}
}
}
}
//1,2,5 凑 100 银币问题
int main3()
{
int count = 0; // 情况数 int i,j;//5 分个数, 2 分个数
for(i=0; i<=20; i++)//5 分个数
{
for(j=0; j<=50; j++)//2 分个数
{
if( ( 5*i + 2*j ) <= 100 )
{
count++;
printf("%d: 5 分%d 个,2 分%d
个, 1 分%d 个 \n", count, i, j, 100-5*i -2*j);
}
}
}
}
//8. 一维数组的最大值、最小值、平均值
#
-
Python基础教程(入门教程),30分钟玩转Python编程!
2021-09-09 17:35:36这篇 Python 入门教程讲解的知识点包括:Python 编程环境的搭建、Python 基本操作入门、Python 数据类型、Python 语句和函数。 Python环境下载和配置 根据 Windows 版本(64位/32位)从 Python 官网安装下载对应的...这是一篇针对初学者的 [Python]基础教程,只要你认真阅读,花费 30 分钟即可快速了解 Python。
这篇 Python 入门教程讲解的知识点包括:Python 编程环境的搭建、Python 基本操作入门、Python 数据类型、Python 语句和函数。
Python环境下载和配置
-
根据 Windows 版本(64位/32位)从 Python 官网安装下载对应的版本,如图 1 所示。
图 1 下载Python
官方下载网址:https://www.python.org/
-
下载完成后,双击文件以运行安装程序安装 Python,如图 2 所示:
图 2 安装 Python
注意,需要勾选“Add Python 3.6 to PATH”选项后单击“Customize installation”选项。这个选项用于将 Python 3.6 加入系统路径,勾选该选项会使日后的操作非常方便;如果没有勾选这个选项就需要手动为系统的环境变量添加路径。
-
在弹出的选项卡中勾选所有的选项,并单击“Next”按钮,如图 3 所示。
图 3 Python 安装第二步
选项“Documentation”表示安装 Python 的帮助文档;选项“pip”表示安装 Python 的第三方包管理工具;选项“tcl/tk and IDLE”表示安装 Python 的集成开发环境;选项“Python test suite”表示安装 Python 的标准测试套件,后两个选项则表示允许版本更新。
-
保持默认勾选状态,单击“Browse”按钮,选择安装路径,如图 4 所示。
图 4 设置安装路径
-
单击“Install”按钮,直至完成安装。
安装好后,调出命令提示符,输入“python”,检查是否安装成功。如果 Python 安装成功,将出现如图 5 所示的界面,即输入“python”后,会看到“>>>”符号。
图 5 验证 Python 是否安装成功
常用IDE——PyCharm
安装好 Python3.6 环境后,还需要配置一个程序员专属工具,即 PyCharm,它是一个适合用于开发的多功能 IDE(集成开发环境),下载社区版(免费版),下载地址为http://www.jetbrains.com/pycharm/download/#section=windows(参见图 6):
图 6 下载 PyCharm
PyCharm 非常好用,通过 PyCharm 可以下载、安装和管理库。
常用IDE——Anaconda
Anaconda 是一个专门用于统计和机器学习的 IDE,它集成了 Python 和许多基础的库,如果业务场景是统计和机器学习,那么只要安装一个 Anaconda 就可以了,这样省去许多复杂的配置过程。
Anaconda 的官方下载地址为:https://www.anaconda.com/download/,参见图 7:
图 7 下载 Anaconda
这里默认下载的是 64 位的版本,如果需要 32 位的版本,那么可以单击“Download”按钮下的文字链接。
使用 Anaconda 不需要提前安装 Python,安装后即可运行:通过快捷键【Win+R】调用运行窗口,输入“ipython jupyter”,然后单击“确定”按钮(参见图 8)。最后,如果你的时间不是很紧张,并且又想快速的提高,最重要的是不怕吃苦,建议你可以联系维:762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~
图 8
Python操作入门
编写第一个Python代码
运行 PyCharm 后,需要先新建计划,单击“Create New Project”选项(参见图 9):
图 9 新建工程
设置 Location(路径)和 Interpreter(翻译器),这里选择 Python 原版的翻译器,然后单击右下角的“Create”按钮,如图 10 所示:
图 10 设置Location(路径)和Interpreter(翻译器)
新建 Project(计划)后,在左侧的项目窗口,右击鼠标,在快捷菜单中选择“New”➔“Python File”命令,新建 Python 文件(参见图 11)。
图 11 新建Python文件
设置 Name(文件名),然后单击右下角的“OK”按钮(参见图 12)。
图 12 设置文件名
新建文件后,右侧的空白区域就是代码编辑区(参见图 13)。
图 13 代码编辑区
从“Hello World(你好,世界)”开始吧!在编辑区中输入 print(′Hello,World!′),print() 是一个打印函数,表示将括号中的文本打印在即时窗口中。
然后将鼠标光标停留在括号右侧,右击鼠标,在快捷菜单中选择“Run ‘test’”命令,其中单引号中的 test 是当前的文件名,一定要注意运行的文件名和要运行的文件名保持一致。运行后可以观察到即时窗口中打印出“Hello,World!”,如图 14 所示。
图 14 Hello,World运行结果示意图
Python基本操作
Python注释
注释的目的是让阅读人员能够轻松读懂每一行代码的意义,同时也为后期代码维护提供便利。在 Python 中,单行注释以 # 号开头,如下所示:
#第一个注释
print(‘Hello,World!’)#第二个注释Python 的多行注释用两个三引号'''包含起来,如下所示:
1. ''' 2. 第一行注释 3. 第二行注释 4. ''' 5. print('Hello,World!')
Python的行与缩进
Python 最具特色的就是使用缩进来表示代码块,不需要使用大括号。缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数,缩进不一致会导致代码运行错误。
正确缩进的示例如下:
1. if True: 2. print("True") 3. else 4. print("False")
错误缩进的示例如下:
if True:
print(“True”)
else:
print(“False”)多行语句
Python 通常是一行写完一条语句,但语句很长的话,可以通过反斜杠(\)来实现多行语句。
weekdays =“Little Robert asked his mother for two cents.
‘What did you do with the money I gave you yesterday?’”
print(weekdays)这里的输出结果为“Little Robert asked his mother for two cents.‘What did you do with the money I gave you yesterday?’”。
等待用户输入
Python 中的 input() 函数是用来与用户进行交互的,如下所示:
1. print("Who are you?") 2. you = input() 3. print("Hello!") 4. print(you)
此时,运行结果为“Who are you?”。
当用户输入 Lingyi,然后按【Enter】键时,程序会继续运行,其输出结果如下:
Hello!
Lingyi变量
变量赋值
在编辑区输入以下代码:
a = 42
print(a)注意:Python 的变量无须提前声明,赋值的同时也就声明了变量。
变量命名
Python 中具有自带的关键字(保留字),任何变量名不能与之相同。在 Python 的标准库中提供了一个 keyword 模块,可以查阅当前版本的所有关键字,如下所示:
import keyword
keyword.kwlistPython数据类型
Python 中拥有 6 大数据类型:number(数字)、string(字符串)、list(列表)、tuple(元组)、sets (集合)、dictionary(字典)。
数字
Python 3 支持 4 种类型的数字:int(整数类型)、float(浮点类型)、bool(布尔类型)、complex (复数类型)。
在 Python 3 中可以使用 type() 函数来查看数字类型,如下所示。
a=1 b=3.14 c=True
print(type(a)) print(type(b)) print(type©)输出结果<class'int'> 输出结果<class'float'> 输出结果 <class'bool'>
Python3 所支持的运算类型包括加法、减法、除法、整除、取余、乘法和乘方:
1. print((3+1)) #加法运算,输出结果是 4 2. print((8.4-3)) #减法运算,输出结果是5.4 3. print(15/4) #除法运算,输出结果是 3.75 4. print(15//4) #整除运算,输出结果是 3 5. print(15%4) #取余运算,输出结果是 3 6. print(2*3) #乘法运算,输出结果是 6 7. print(2**3) #乘方运算,输出结果是 8
字符串
字符串就是在单引号、双引号和三引号之间的文字。单引号示例:print('welcome to hangzhou'),其中所有的空格和制表符都照原样保留。单引号与双引号的作用其实是一样的,但是当引号里包含单引号时,则该引号需使用双引号,例如:print("what’s your name?")。三引号可以指示一个多行的字符串,也可以在三引号中自由使用单引号和双引号,如下所示:
print(’’‘Mike:Hi,How are you?
LiMing:Fine,Thank you!and you?
Mike:I’m fine,too!’’’)如果要在单引号字符串中使用单引号本身,在双引号字符串中使用双引号本身,则需要借助于转义符(\),如下所示:
print(‘whar’s your name?’)
#输出结果如下:whar’s your name?注意:在一个字符串中,行末单独的斜杠号表示下一行继续,而不是开始写新的一行,另外可以使用双反斜杠(\)来表示反斜杠本身,而 \n 表示换行符。
如果想要指示某些不需要使用转义符进行特别处理的字符串,那么需要指定一个原始字符串。原始字符串通过给字符串加上前缀 r 或 R 的方式指定,比如需要原样输出 \n 而不是令其换行,则代码如下:
print(r"Newlines are indicated by \n")
#输出结果是Newlines are indicated by \n字符串的截取格式如下所示:
字符串常量[start_index:end_index+1]
此处解释下为什么加 1:字符串的截取从 start_index 开始,到 end_index 结束,也就是大家常理解的左闭右开,如下所示:
1. str = 'Lingyi' 2. print(str[0]) #输出结果为L 3. print(str[1:4]) #输出结果为ing 4. print(str[-1]) #输出结果为i
尝试下面的代码:
1. num = 1 2. string = '1' 3. print(num+string)
此时,运行程序会报错,错误提示如下所示,为什么呢?
TypeError: unsupported operand type(s) for +: ‘int’ and ‘str’
字符串(string)只是 Python 中的一种数据类型,下面的语句在赋值的时候右侧用了单引号,数据类型是字符串(string)。
string = ‘1’
下面语句的数据类型为整型(integer)。
num = 1
不同的数据类型之间是不能进行运算的,但是,不同数据类型可以相互转换,以上代码通过修改后就可以正常运行,修改后的代码如下:
1. num = 1 2. string = '1' 3. num2 = int(string) 4. print(num+num2)
注意,“+”号用在字符串中间是连接符,用在数值中间是运算符:int() 是将括号中的数值或者文本转换成整型数据类型。最后,如果你的时间不是很紧张,并且又想快速的提高,最重要的是不怕吃苦,建议你可以联系维:762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~
运行后,即时窗口中打印的结果是 2,如图 15 所示。
图 15 运行结果
四则基础运算如下:
1. a = 1 2. b = 2 3. c = a+b 4. print(c)
因为相加的双方是数值型,此时“+”号是运算符,运行结果如下:
3
相加的双方是字符型数据,此时“+”号是连接符:
1. a = 1 2. b = 2 3. c = 'a'+'b' 4. print(c)
运行结果如下:
ab
列表
Python 列表是任意对象的有序集合,列表写在中括号 [] 里,元素之间用逗号隔开。这里的任意对象,既可以是列表嵌套列表,也可以是字符串,如下所示:
list = [“Python”,12,[1,2,3],3.14,True]
print(list)#运行结果为[‘Python’, 12, [1, 2, 3], 3.14, True]每个 list(list 是笔者自定义的变量)中的元素从 0 开始计数,如下代码可以选取 list 中的第一个元素:
1. list = [1,2,3,4] 2. print(list[0]) 3. #运行结果为1
列表删除操作可以使用 remove 方法,只需要在变量名字后面加个句号就可以轻松调用,PyCharm 有自动联想功能,选中目标方法或者函数,按【Tab】键即可快速键入,如图 16 所示:
图 16 PyCharm自动联想功能
以下代码用于删除第 3 个元素,并用 print 将结果打印出来。其中 remove 方法用于删除列表的元素:
list.remove(3)
print(list)#运行结果是[1, 2, 4]元组
元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号()里,元素之间则用逗号隔开,如下所示:
1. tuple = ['abc',76,'ly',898,5.2] 2. print(tuple[1:3]) 3. #运行结果是[76,'ly']
集合
集合(set)是一个无序不重复元素的序列,可以使用大括号 {} 或者 set() 函数创建集合。需要注意的是,一个空集必须使用 set() 函数创建而不能使用大括号 {},因为大括号 {} 是用来创建空字典的,如下所示:
1. age = {18,19,18,20,21,20} 2. print(age) 3. #运行结果是{18, 19, 20, 21}
字典
字典是一种可变容器模型,且可存储任意类型对象,用 {} 标识。字典是一个无序的键(key)值(value)对的集合,格式如下所示:
dic = {key1 : value1, key2:value2}
接下来建立一个字典,代码如下:
1. information = { 2. 'name':'liming', 3. 'age':'24' 4. } 5. print(information) 6. #运行结果是{'name': 'liming', 'age': '24'}
其中 name 是一个 key(键),liming 是一个 value(值)。
字典增加数据时,可以使用下面的方法:
1. information['sex'] = 'boy' 2. print(information) 3. #运行结果是{'name': 'liming', 'age': '24', 'sex': 'boy'}
字典删除数据时,可以使用 del 函数,代码如下:
1. del information['age'] 2. print(information) 3. #运行结果是{'name': 'liming', 'sex': 'boy'}
Python 语句与函数
条件语句
接下来进行登录验证操作,首先给变量 password 赋值,然后判断 password(密码)是否正确,正确就打印“login success!”(登录成功!),错误就打印“wrong password”(密码错误):
1. password = '12345' 2. if password == '12345': 3. print('login sucess!') 4. else 5. print('wrong password')
在 Python 中判断是否相等可以使用“==”两个等号(单个等号是赋值)。
条件语句的语法如下:
if 判断条件:
执行语句…
else:
执行语句…循环语句
在 Python 中要注意缩进,条件语句根据缩进来判断执行语句的归属。
下面用 for 语句实现 1 至 9 的累加:
1. sum = 0; 2. for i in range(1,10,1):#不包含 10,实际为1-9 3. sum = i + sum 4. print(sum) 5. #运行结果是45
其中 range 表示范围,i 从 1(第 1 个参数)开始迭代,每次加 1(第 3 个参数),直到 i 变成了 10(第 2 个参数)结束,因此当 i=10 时不执行语句,for 循环是 9 次迭代。# 号代表注释,# 号后面的文本将不会执行。在 PyCharm 中,如果要注释代码,则可以选中代码后按组合键【Ctrl+/】。最后,如果你的时间不是很紧张,并且又想快速的提高,最重要的是不怕吃苦,建议你可以联系维:762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~
for 的语法如下:
for 迭代变量 in 迭代次数:
执行语句…如果是列表或者字典,就不用 range() 函数,直接用列表或者字典,此时 i 表示列表或者字典中的元素,代码如下:
1. list = {1,2,3,4} 2. for i in list: 3. print(i)
运行结果如下:
1
2
3
4函数
在刚刚接触的函数中,print() 是将结果打印出来的函数,int() 是将字符串类型转换成数据类型的函数。类似这种函数,统称为内建函数,内建函数可以直接调用。
有内就有外,外建函数其实就是通常所讲的自定义函数。
自定义函数的语法如下:
def f(x):
定义过程
return f(x)def(define 即定义)是创建函数的方法,下面用 def 创建方程:y=5x+2:
1. def y(x): 2. y = 5*x + 2 3. return y 4. #下面调用自定义函数y 5. d = y(5) 6. print(d) 7. #运行结果是 27
30 分钟以后怎么办?
这篇 Python 基础教程只是让从没有接触过 Python 的读者对 Python 有个初步的印象,所以很多知识点都没有谈到;例如,本教程没有提到切片、模块、类和对象、文件操作、进程线程、图形界面、网络编程等。
-
-
程序员5种编程入门方法,快速学会一门编程语言!
2020-05-15 15:51:16程序员要精通一门语言,还是要掌握多门语言?...大抵来说,先需精通一门语言, 编程才算入门了。 再谈涉猎,再谈精通其他语言… 如何快速学会一门编程语言?下面给程序员小伙伴们分享5大编程入门方法: 0. -
零基础怎样自学编程?初学者如何学习编程?编程学习入门指南(文章较长,需要耐心看完)
2022-06-17 20:39:50实际上,掌握了正确的学习方法,编程入门并不难。 本期的主题是:零基础怎样自学编程?新手如何学习编程?编程学习入门指南。1 明确动机和方向,有强烈的学习欲望 就自学编程来说,很多时候你其实都是孤独的,不知道... -
新手程序员必学的代码编程技巧
2020-10-12 15:57:51程序员往往渴望加入的是一支“30%的时间在写代码,而70%的时间在喝着咖啡讨论着如何将产品做好”的团队。 软件工作应该成为一项技术和艺术融合的高智力活动,而项目经理应该是一个高度理解质量、范围和进度客观... -
程序员5种编程入门方法,如何快速学会一门编程语言?
2022-05-18 16:32:16程序员要掌握一门语言,还是一定要掌握多门语言? 对于这个问题,公说公有理,婆说婆有理。 然而现实技术更新太快,掌握一门编程语言都不容易。同时精通多门语言又谈何容易呢? -
新手必看的入门编程教程
2021-07-02 00:15:15书籍简介本书旨在于介绍如何使用 Python 语言进行编程的自由图书。它以教材与指南的形式为入门者介绍 Python 语言。如果你对电脑知识的了解仅限于如何保存文本文件的话,那这本书就是为... -
编程入门篇之零基础入门(通用)
2018-11-17 23:53:09编程一途,最难的莫过于入门。如果你想学,那么现在就开始,编程远没有想象中那么复杂。 从变量说起 2x + 1 = y 这是一个数学中的二元一次方程,其中x和y就是变量,在编程中的变量也是一样,我们指定通过改变x... -
嵌入式Linux C编程入门教程程序代码.7z
2022-07-14 11:53:11嵌入式Linux C编程入门教程程序代码.7z -
Java SE编程入门教程 java异常(共57页).pptx
2021-12-04 10:47:11Java SE编程入门教程 javaGUI编程快速入门(1)(共82页).pptx Java SE编程入门教程 java包装器(共9页).pptx Java SE编程入门教程 java反射机制(共16页).pptx Java SE编程入门教程 java泛型(共11页).pptx Java ... -
Java SE编程入门教程 java线程(共61页).pptx
2021-12-04 10:47:10Java SE编程入门教程 javaGUI编程快速入门(1)(共82页).pptx Java SE编程入门教程 java包装器(共9页).pptx Java SE编程入门教程 java反射机制(共16页).pptx Java SE编程入门教程 java泛型(共11页).pptx Java ... -
Java SE编程入门教程 java接口(共21页).pptx
2021-12-04 10:47:05Java SE编程入门教程 javaGUI编程快速入门(1)(共82页).pptx Java SE编程入门教程 java包装器(共9页).pptx Java SE编程入门教程 java反射机制(共16页).pptx Java SE编程入门教程 java泛型(共11页).pptx Java ... -
Java SE编程入门教程 java泛型(共11页).pptx
2021-12-04 10:47:04Java SE编程入门教程 javaGUI编程快速入门(1)(共82页).pptx Java SE编程入门教程 java包装器(共9页).pptx Java SE编程入门教程 java反射机制(共16页).pptx Java SE编程入门教程 java泛型(共11页).pptx Java ... -
[14本经典Android开发教程]-7-Android编程入门教程
2015-01-22 23:34:31[14本经典Android开发教程]-7-Android编程入门教程 -------------------------------------------------- 本文为以前已经使用Java编程并想开始为Android平台开发的开发者编写。我试着尽可能地多的"展开",在合适的每... -
Java SE编程入门教程 java设计模式(共17页).pptx
2021-12-04 10:47:09Java SE编程入门教程 javaGUI编程快速入门(1)(共82页).pptx Java SE编程入门教程 java包装器(共9页).pptx Java SE编程入门教程 java反射机制(共16页).pptx Java SE编程入门教程 java泛型(共11页).pptx Java ... -
Java SE编程入门教程 java反射机制(共16页).pptx
2021-12-04 10:47:04Java SE编程入门教程 javaGUI编程快速入门(1)(共82页).pptx Java SE编程入门教程 java包装器(共9页).pptx Java SE编程入门教程 java反射机制(共16页).pptx Java SE编程入门教程 java泛型(共11页).pptx Java ... -
Java SE编程入门教程 java static final(共24页).pptx
2021-12-04 10:47:03Java SE编程入门教程 javaGUI编程快速入门(1)(共82页).pptx Java SE编程入门教程 java包装器(共9页).pptx Java SE编程入门教程 java反射机制(共16页).pptx Java SE编程入门教程 java泛型(共11页).pptx Java ... -
Java SE编程入门教程 java 常用API(共22页).pptx
2021-12-04 10:47:03Java SE编程入门教程 javaGUI编程快速入门(1)(共82页).pptx Java SE编程入门教程 java包装器(共9页).pptx Java SE编程入门教程 java反射机制(共16页).pptx Java SE编程入门教程 java泛型(共11页).pptx Java ...