【3天速成Python 基础语法(1)】

1 🍑常量和表达式🍑

我们可以把 Python 当成一个计算器, 来进行一些算术运算:

print(1 + 2 - 3)
print(1 + 2 * 3)
print(1 + 2 / 3)

注意:在 Python 中不会使用;来分割语句,这点有异与C/C++。
在这里插入图片描述
从结果我们也不难看出,Python能够自动的推导变量的类型进行输出。

注意:

  • print 是一个 Python 内置的 函数, 这个稍后详细介绍。
  • 可以使用 + - * / ( )等运算符进行算术运算,先算乘除,后算加减。
  • 运算符和数字之间, 可以没有空格, 也可以有多个空格,但是一般习惯上写一个空格(比较美观)。

形如 1 + 2 - 3 这样是算式, 在编程语言中称为 表达式, 算式的运算结果, 称为 表达式的返回值。其中 1 , 2 , 3 这种称为 字面值常量, + - * / 这种称为 运算符 或者 操作符。

熟悉 C / C++ 的同学可能认为, 2 / 3 结果为 0 (小数部分被截断)。但是在 Python 中得到的结果则是一个小数,更符合日常使用的直觉。


2 🍑变量和类型🍑

有的时候, 我们需要进行的计算可能更复杂一些, 需要把一些计算的中间结果保存起来,这个时候就需要用到 变量。

比如:

avg = (67.5 + 89.0 + 12.9 + 32.2) / 4
total = (67.5 - avg) ** 2 + (89.0 - avg) ** 2 + (12.9 - avg) ** 2 + (32.2 - avg) ** 2
result = total / 3
print(result)

注意:

  • avg, total, result 均为变量。
  • **在 Python 中表示乘方运算, ** 2 即为求平方。

2.1 🍎定义变量🍎

a = 10

创建变量的语句非常简单, 其中:

  • a 为变量名. 当我们创建很多个变量的时候, 就可以用名字来进行区分。
  • = 为赋值运算符, 表示把 = 右侧的数据放到 = 左侧的空间中。

注意: 变量的名字要遵守下面的规则:

  • 变量名由数字/字母/下划线构成
  • 数字不能开头
  • 变量名不能和 “关键字” 重复
  • 变量名大小写敏感,num 和 Num是两个不同的变量名

2.2 🍎使用变量🍎

读取变量的值:

a = 10
print(a)

修改变量的值:

a = 20
print(a)

2.3 🍎变量的类型🍎

变量里面存储的不仅仅是数字, 还可以存储其它种类的数据。为了区分不同种类的数据, 我们引入了 “类型” 这样的概念。

注意: 和 C / C++ 等语言不同, Python 变量的类型不需要显式指定, 而是在赋值的时候确定的。

2.3.1 🍋整数🍋

a = 10
print(type(a))

在这里插入图片描述

PS: typeprint 类似, 也是 python 内置的函数. 可以使用 type 来查看一个变量的类型。

注意: 和 C / C++ 等语言不同, Python 的 int 类型变量, 表示的数据范围是没有上限的. 只要内存足够大, 理论上就可以表示无限大小的数据。

2.3.2 🍋浮点数(小数)🍋

a = 0.5
print(type(a))

在这里插入图片描述

注意: 和 C / C++ 等语言不同, Python 的小数只有 float 一种类型, 没有 double 类型,但是实际上
Python 的 float 就相当于 C / C++ 的 double, 表示双精度浮点数。

2.3.3 🍋字符串🍋

a = 'hello'
print(type(a))

在这里插入图片描述

使用' '或者" "引起来的, 称为 字符串,可以用来表示文本。

注意: 在 Python 中, 单引号构成的字符串和双引号构成的字符串, 没有区别。 'hello'"hello" 是完全等价的。

可以使用 len函数来获取字符串的长度:

a = 'hello'
print(len(a))

在这里插入图片描述
可以使用 + 针对两个字符串进行拼接:

a = 'hello'
b = 'world'
print(a + b)

在这里插入图片描述

此处是两个字符串相加,不能拿字符串和整数/浮点数相加。

字符串作为开发中最常用到的数据类型, 支持的操作方式也是非常丰富的,此处暂时不详细展开。

2.3.4 🍋布尔🍋

布尔类型是一个特殊的类型, 取值只有两种, True (真) 和 False (假)。

a = True
print(type(a))
b = False
print(type(b))

在这里插入图片描述

2.3.5 🍋其他🍋

除了上述类型之外, Python 中还有 list, tuple, dict, 自定义类型 等等,我们后续再介绍。

2.3.6 🍋动态类型特性🍋

在 Python 中, 一个变量是什么类型, 是可以在"程序运行"过程中发生变化的,这个特性称为"动态类型"。

比如:

a = 10
print(type(a))
a = 'hello'
print(type(a))

运行:
在这里插入图片描述
我们惊讶的发现程序是可以正常运行的,在程序执行过程中, a 的类型刚开始是 int, 后面变成了 str。

但是在C/C++ 这样的语言则不允许这样的操作,一个变量定义后类型就是固定的了,这种特性则称为 “静态类型”。

动态类型特性是一把双刃剑:

  • 对于中小型程序, 可以大大的解约代码量(比如写一段代码就可以同时支持多种类型)。
  • 对于大型程序, 则提高了模块之间的交互成本。

3 🍑注释🍑

Python 中有两种风格的注释。

3.1 🍎注释行🍎

使用 # 开头的行都是注释 。

# 这是一行注释

3.2 🍎文档字符串🍎

使用三引号引起来的称为 “文档字符串”, 也可以视为是一种注释。

  • 可以包含多行内容。
  • 一般放在 文件/函数/类 的开头。
  • """ 或者 ''' 均可 (等价)。
"""
这是文档字符串
这是文档字符串
"""

4 🍑输入输出🍑

4.1 🍎通过控制台输出🍎

print('hello')

更多的时候, 我们希望能够输出的内容是混合了字符串和变量的。

num = 10
print(f'num = {num}')

在这里插入图片描述

注意:

  • 使用 f 作为前缀的字符串, 称为 f-string
  • 里面可以使用 { } 来内嵌一个其他的变量/表达式。

Python 中还支持其他的格式化字符串的方法,咱们此处只了解这个最简单的即可,其他的暂时不做介绍。

4.2 🍎通过控制台输入🍎

python 使用 input 函数, 从控制台读取用户的输入。

num = 0
num = input('请输入一个整数: ')
print(f'你输入的整数是 {num}')

在这里插入图片描述

注意:

  • input 的参数相当于一个 “提示信息”, 也可以没有。
  • input 的返回值就是用户输入的内容,是字符串类型。

再来看一个例子:

a = input('请输入第一个整数: ')
b = input('请输入第二个整数: ')
print(f'a + b = {a + b}')

在这里插入图片描述
此处的结果是字符串拼接, 不是算术运算,如果要想进行算术运算, 需要先转换类型。

比如:

a = input('请输入第一个整数: ')
b = input('请输入第二个整数: ')
a = int(a)
b = int(b)
print(f'a + b = {a + b}')

在这里插入图片描述

通过 int( ) 把变量转成了 int 类型,类似的, 使用 float( ), bool( ), str( ) 等可以完成对应的类型转换。


5 🍑运算符🍑

5.1 🍎算术运算符🍎

+ - * / % ** //这种进行算术运算的运算符, 称为 算术运算符。

  • 注意1: //中不能用 0 作为除数. 否则会 抛出异常:
    在这里插入图片描述

  • 注意2: 整数 / 整数 结果可能是小数,而不会截断。
    这个前面说过了的。

  • 注意3: % 不是 “百分数”, 而是求余数。

  • 注意4: ** 是求乘方,不光能算整数次方, 还能算小数次方:

print(4 ** 2)
print(4 ** 0.5)

在这里插入图片描述

  • 注意5: // 是取整除法(也叫地板除),整数除以整数, 结果还是整数(舍弃小数部分, 并向下取整,不是四舍五入。
print(7 // 2)
print(-7 // 2)

在这里插入图片描述

5.2 🍎关系运算符🍎

< <= > >= == != 这一系列的运算符称为 关系运算符,它们是在比较操作数之间的关系,类似于C/C++。

其中:
>= 是 “大于等于”
== 是 “等于”
!= 是 “不等于”
<= 是 “小于等于”

  • 如果关系符合, 则表达式返回 True. 如果关系不符合, 则表达式返回 False:
a = 10
b = 20
print(a < b)
print(a <= b)
print(a > b)

在这里插入图片描述

  • 关系运算符不光针对整数/浮点数进行比较, 还能针对字符串进行比较:
a = 'hello'
b = 'world'
print(a < b)
print(a <= b)
print(a > b)

在这里插入图片描述
注意:

  • 直接使用 == 或者 != 即可对字符串内容判定相等。 (这一点和 C 语言不同,C++支持运算符重载可以这么比较)

  • 字符串比较大小, 规则是 “字典序”。

  • 对于浮点数来说, 不要使用 == 判定相等:

print(0.1 + 0.2 == 0.3)

在这里插入图片描述
浮点数在计算机中的表示并不是精确的,在计算过程中, 就容易出现非常小的误差。

  • 正确的比较方式,不再严格比较相等了, 而是判定差值小于允许的误差范围:
a = 0.1 + 0.2
b = 0.3
print(-0.000001 < (a - b) < 0.000001)

在这里插入图片描述
实际工程实践中, 误差在所难免, 只要保证误差在合理范围内即可。

5.3 🍎逻辑运算符🍎

and or not 这一系列的运算符称为逻辑运算符.。

  • and 并且。两侧操作数均为 True, 最终结果为 True,否则为 False。 (一假则假,类似于C/C++中的&&)
  • or 或者。两侧操作数均为False, 最终结果为 False,否则为 True。 (一真则真,类似于C/C++中的||)
  • not 逻辑取反。操作数本身为 True, 则返回False,本身为 False, 则返回 True。(类似于C/C++中的

一种特殊写法:
a < b and b < c 这个操作等价于 a < b < c 这个设定和大部分编程语言都不相同。

关于短路求值,和其他编程语言类似, Python 也存在短路求值的规则:

  • 对于 and,如果左侧表达式为 False, 则整体一定为 False, 右侧表达式不再执行。
  • 对于 or, 如果左侧表达式为 True, 则整体一定为 True, 右侧表达式不再执行。

这个与C/C++类似,很简单就不再赘述了。

5.4 🍎赋值运算符🍎

链式赋值:

a = b = 10

多元赋值:

a, b = 10, 20

复合赋值运算符:
Python 还有一些 复合赋值运算符. 例如 += -= *= /= %=等。类似于C/C++。

注意: 像 C / C++ 中, 存在 ++ -- 这样的自增/自减运算符,Python 中则不支持这种运算,如果需要使用,,则直接使用 += 1 或者 -= 1

++ -- 最大的问题就是容易分不清前置和后置的区别,这一点 Python 语法在设计的时候就进行了规避, 避免出现这种不直观, 并且容易混淆的语法。

5.5 🍎其他🍎

除了上述之外, Python 中还有一些运算符, 比如 身份运算符 (is, is not), 成员运算符 (in, not in), 位运算符 ( & | ~ ^ << >>) 等。

起始位运算类似于C/C++,其他的此处咱们暂时不介绍。


6 🍑顺序语句🍑

默认情况下, Python 的代码执行顺序是按照从上到下的顺序, 依次执行的。

print("1")
print("2")
print("3")

执行结果一定为 “123”,而不会出现 “321” 或者 “132” 等. 这种按照顺序执行的代码, 我们称为 顺序语句。


7 🍑条件语句🍑

7.1 🍎语法格式🍎

Python 中使用 if else 关键字表示条件语句。

if:

if expression:
	do_something1
	do_something2
next_something
  • 如果 expression 值为 True, 则执行 do_something1, do_something2, next_something
  • 如果 expression 值为 False, 则只执行 next_something, 不执行 do_something1, do_something2

if - else:

if expression:
	do_something1
else:
	do_something2

如果 expression 值为 True, 则执行 do_something1
如果 expression 值为 False, 则执行 do_something2

if - elif - else:

if expression1:
	do_something1
elif expression2:
	do_something2
else:
	do_something3

如果 expression1 值为 True, 则执行 do_something1
如果 expression1 值为 False, 并且 expression2 为 True 则执行 do_something2
如果 expression1 值为 False, 并且 expression2 为 False 则执行 do_something3

注意: Python中的条件语句写法,和很多编程语言不太一样:

  • if 后面的条件表达式, 没有 ( ), 使用 : 作为结尾。
  • if / else 命中条件后要执行的 “语句块”, 使用 缩进 (通常是 4 个空格或者 1 个 tab)来表示, 而不是 { }
  • 对于多条件分支, 不是写作 else if, 而是 elif (合体了)

例子1:

a = input("请输入一个整数: ")
if a == "1":
    print("hello")
    print("world")

在这里插入图片描述
在这里插入图片描述
例子2:

a = input("请输入一个整数: ")
if a == "1":
    print("hello")
print("world")

在这里插入图片描述
在这里插入图片描述
Python使用了缩进来替代了C/C++中的{},所以我们在写Python代码时一定要注意缩进规范。

7.2 🍎空语句 pass🍎

代码示例: 输入一个数字, 如果数字为 1, 则打印 hello。

a = int(input("请输入一个整数:"))
if a != 1:
    pass
else:
    print("hello")

其中 pass 表示 空语句,并不会对程序的执行有任何影响,只是占个位置, 保持 Python 语法格式符合要求。

如果代码写作:
在这里插入图片描述
程序是不符合 Python 语法的, 会直接报错。


8 🍑循环语句🍑

8.1 🍎while 循环🍎

基本语法格式:

while 条件:
	循环体 

条件为真则执行循环体。
条件为假就退出循环。

代码示例:计算1-100的和

sum = 0
num = 1
while num <= 100:
    sum += num
    num += 1
print(sum)

8.2 🍎for 循环🍎

基本语法格式:

for 循环变量 in 可迭代对象:
    循环体

注意:

  • python 的 for 和其他语言不同, 没有 “初始化语句”, “循环条件判定语句”, “循环变量更新语句”, 而是更加简单。
  • 所谓的 “可迭代对象”, 指的是 “内部包含多个元素, 能一个一个把元素取出来的特殊变量”。

代码示例: 打印 2, 4, 6, 8, 10

for i in range(2, 12, 2):
    print(i)

使用 range 函数, 能够生成一个可迭代对象. 生成的范围是 [2, 12), 也就是 [2, 11]。
通过 range 的第三个参数, 可以指定迭代时候的 “步长”,也就是一次让循环变量加几。

在这里插入图片描述
代码示例: 求 1 - 100 的和:

sum = 0
for i in range(1, 101):
    sum += i
print(sum)

8.3 🍎continue和break🍎

continue 表示结束这次循环, 进入下次循环,break 表示结束整个循环,类似于C/C++。

sum = 0
count = 0
while True:
    num = input("请输入数字:")
    if num == ';':
        break
    num = float(num)
    sum += num
    count += 1
print(sum / count)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值