你的第一个python程序

上一篇我们大概的认识了一些编程语言,认识了Python是个啥,那么今天我们正式进入python的学习之旅。

在上一篇的最后,我们讲了解释器和编译器的差别,也知道python是一种解释型的语言,所以我们学习python的第一步,就是安装python解释器,那么昨天介绍了很多种解释器,我们要下载官方版本的解释器,也就是CPython。

python解释器的安装

首先打开官网 https://www.python.org,这里对官网多嘴说一句,即如果你后面写程序时,出现了你解释不通,遇到了你理解不了的问题,第一时间你要找的是百度,如果百度能解决你的问题,就用百度的解决方案,因为百度是中文的。。。如果百度解决不了你的疑惑,请上官网选择Documentation,Docs,点击python3.x Docs,然后去搜你要找的内容,这里的解释是最官方的解释,他基本上都能解决你的疑惑,但是很不幸他大部分文档是英文的。

回到怎么下载解释器哈,还是官网 https://www.python.org,选择Downlos,点击你的机器对应的系统。

这里值得注意的是,在我们选择下载python解释器版本的时候最好选择3.6.x或者3.7.0版本,以免在学习Django时发生版本不兼容的问题。

双击下载好的.exe文件,勾选Add Python to PATH(添加python到环境变量),点击install Now即可。

安装完成后按Win+R键,输入cmd调出命令提示符,输入python,若出现下图情况,即表示python安装成功,并已添加到环境变量(注:环境变量通俗的解释就是让cmd状态下找到python)

第一个python程序

python程序有两种编写⽅方式:

  1. 进入cmd控制台. 输入python进入编辑模式. 这时候我们可以直接编写python程序。那么我们首先写一个所有的编程语言入门的程序HelloWorld,如图:

    在这里 print是一条语句,是python最基础的打印语句,在python3.x的版本中,print后面必须要加小括号,否则会报语法错误但是在python2中可以不加括号

    快在你的机器上试一下吧,你的第一个python程序,这里注意的是小括号和引号(单引号,双引号都可),引号里的内容可以随意更换。

  2. 也可以在.py文件中编写python代码. 通过python命令来执⾏行行python代码。这里推荐两款文本编辑器sublime TextNotepad++,下面的示例以sublime Text做演示,打开sublime,新建文件,然后按住ctrl+s保存文件,注意保存的时候,尽量把文件保存在任意盘符下新建一个文件夹用来存放你的代码,文件名随意,文件后缀以.py结尾。

    在文件中输入语句,ctrl+S保存。

    接下来是运行我们写的程序代码,找到你的.py文件所在位置,在地址栏中输入cmd并回车。

    你会发现命令行的地址和地址栏的地址是一样的的时候就可以在里面执行python代码了

    命令行输入python+空格+文件名回车.

    至此我们的第一个python程序就完成了,如果出现问题麻烦看文末的解决方案。

变量

在讲变量前,先看一段代码

print(1+2)
# 执行结果为 3
print("1+2")
# 执行结果为 1+2

没错这里引号的作用就像是我们小学里学的引号一样,如 周杰伦说:"我喜欢昆凌",在这里引号里表示的是周杰伦说的原话,所以在我们的代码里也一样,引号里的内容就是原样输出的。

print(1+2)
print((1+2)*6)
print(((1+2)*6)-3)
print((((1+2)*6)-3)/5)
print((((1+2)*6)-3)*8)

看上面的代码,如果我们继续在上面代码的基础上继续写,我们就会写的很费劲,这里我们引入一个概念,叫变量。什么时变量呢,可以理解成把程序运行过程中产生的中间值,暂时存储起来,方便后面的程序调用。通俗的解释一下,比如说我想喝豆浆,所以我们会把豆浆装在杯子里,然后拿去喝。在这里,豆浆就是我们程序运行过程中产生的中间值,而杯子就是变量,杯子现在装的时豆浆,过会也可以拿来装牛奶,装可乐等等,也就是说变量时可变的。

# 变量怎么用?就像装豆浆一样,把豆浆倒进杯子里
a = 180  # 创建一个变量a,把180赋值给了a
b = a - 3 # 177

这里我们需要记住一句话:看见等号,先算右边,然后把结果赋值给左边。

变量的命名规则

  1. 变量必须由数字,字母,下划线组成。
  2. 变量不能由数字开头,更不能是纯数字。
  3. 不能是python的关键字
  4. 不要太长
  5. 要有意义
  6. 不要用中文
  7. 区分大小写
  8. 推荐使用驼峰体或者下划线命名

常量

在python中不存在绝对的常量。约定俗成,所有的大写字母就是常量。例如:

PI = 3.141592653

注释

有时候我们写的东西不一定都是给用户看的. 或者不希望解释器执行. 那我们可以使用#来注释掉代码. 被注释的内容是不会执行的.可以方便后面的程序员来拜读你的代码

  • 单行注释: # 被注释的内容
  • 多⾏注释:''' 被注释的内容 ''', """这个也是多行注释"""

python的基本数据类型

什么是数据类型? 我们人类可以很容易易的分清数字与字符的区别,但是计算机并不不能呀,计算机虽然很强大,但从某种⻆度上看又很傻,除非你明确的告诉它,1是数字,“汉”是文字,否则它是分不清1和‘汉’的区别的,因此,在每个编程语言里都会有⼀个叫数据类型的东东,其实就是对常用的各种数据类型进行了明确的划分,你想让计算机进行数值运算,你就传数字给它,你想让他处理文字,就传字符串串类型给他。Python中常用的数据类型有多种,今天我们暂只讲3种, 数字、字符串串、布尔类型(命题).

整数(int)

常见的数字都是int类型. 用于计算或者大小的比较

  • 在32位机器上int的范围是: -2**^31~2^**31-1,即-2147483648~2147483647

  • 在64位机器上int的范围是: -2**^63~2^**63-1,即-9223372036854775808~9223372036854775807

够你用了吧. 注意这些是整数.

# 如果有一天,别人给你传了一个参数a,你又不知道这是个什么数据类型,也就无法进行下一步的操作,所以就有了下面的判断数据类型的函数type()
a = 20
print(type(a))   # 执行结果: <class 'int'>

上面说了判断数据类型的方法type()函数,下面我们来研究一下整数可以用来干嘛。

# 整数可以用来进行数学运算 最常用的 +-*/
print(10/3) # 执行结果:3.3333333333333335

这里解释一下为什么执行结果是3.3333333333333335,前面的3很好理解,那么为什么最后一位数是5? 在计算机的世界里,整数是可以完美的表示出来的,但是小数是有误差的,尤其是浮点数。为什么呢,这里举个栗子,问 0-1 中有多少个小数,是无穷个,所以计算机在处理小数的时候会有误差,而这个误差是人在日常生活中能接受的,比如上面的3.3333333333333335的误差是0.0000000000000002,这个误差我们日常生活中是能接受的,但是谁接受不了呢,你做那种纯的科学计算的时候,这是完全不能容忍的,比方说做一个航天飞机的升空的轨迹运算,就完全接受不了这个误差,这是目前我了解过的所有编程语言里面都有的BUG。

# 数学运算中除了最常见的+-*/,还有%(取余)和//(整除)
print(10//3) # 3 
print(10%3) # 1

字符串(str)

在Python中,凡是用引号引起来的,全是字符串.

s = '秦凯旋'
print(type(s))  # 执行结果: <class 'str'>

上面讲整数的时候讲了整数的基本操作,当然字符串也有他的基本操作,但是字符串的操作实在是太多了,可能要专门花一篇文章来讲,所以这里先介绍几种简单的。

# 字符串可以 +(拼接)
print("老秦"+"是"+"电线杆子") # 老秦是电线杆子
# 字符串不可以和整数做加法
print("他扒拉我" + 666)
# TypeError: can only concatenate str (not "int") to str
 
# 字符串可以 * 表示重复n次
print("还钱"*5) # 还钱还钱还钱还钱还钱

bool

如果没接触过变成,可能很难理解bool是什么意思,但是上学的时候老师肯定教过一个玩意儿叫命题,命题分为真命题和假命题,即True和False。

a = 10
b = 20
c = a > b
print(c) 
c = a < b
print(c)
#执行结果: 
# False
# True

用户交互

使用input()函数,可以让我们和计算机互动起来.上面我们说了print()是一个输出语句,这里的input()就是输入。怎么用呢?

s = input("请输入一句话:") 
print("刚才你输入的内容是:"+ s)

如图,当你执行当前代码时,你会发现程序他卡在这里不动了,这是因为input()执行的时候会夯住(拥塞状态),等待用户的输入。等你输入了内容并回车后,程序才会继续执行。

这里我们用变量s来接收了input函数获取到了用户输入的内容,那么问题就来了,s的数据类型是啥??下面我们举个栗子验证一下。

很明显,这里的变量s1和s2做的是字符串的拼接,所以用input()函数获取到的内容是一个字符串。

流程控制if语句

你在生活中是不是经常遇到各种选择,⽐比如玩骰子,猜大小,比如选择走那条路回家?Python程序中也会遇到这种情况,这就用到了if语句。

上图很容易看出if语句的语法:

if 条件判断:
	语句块
# 注意缩进tab
执行流程:判断你给的条件是否为真。 如果真。 则执行语句块 。不真则继续执行后面的代码

if 条件:
	if-语句块
else: # 否则
	else-语句块
执行流程:判断条件是否为真。如果真,则执行if-语句块,否则, 执行else的语句块

if 条件1:
	if-语句
elif 条件2:
	elif-语句
else:
	else-语句块
	
if语句只会选择一条路走。 有一个条件成立。 其他的就不再进行判断了.

报错解决方案

  • 编码问题

    遇到上述问题报错是 **SyntaxError: Non-UTF-8 code **时,说明文件的编码方式有问题,如图左下角,helloword.py文件的编码方式时GBK,而python3解释器的默认编码是UTF-8

    解决方法(以sublime Text为例):File -> Reopen with Encoding -> UTF-8 ,然后重写中文部分并即可。

  • 标点符号问题

    遇到上述问题报错是SyntaxError: invalid character in identifier,报错提示无效的标识符即你的标点符号可能是中文的,在代码中,我们的引号就是中文的,改成英文的即可。

练习

下一篇我们讲while循环,bye~