Python基础语法

Posted mChenys

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python基础语法相关的知识,希望对你有一定的参考价值。

目录

1.注释的使用

单行注释

# 开头,在代码的上方说明, 示例代码如下:

(1) 以 # 开头,在代码的上方说明, 示例代码如下:

# 这是第一个单行注释
print("hello python")

为了保证代码的可读性,# 后面建议先添加一个空格,然后再编写相应的说明文字

(2) 以 # 开头,在代码的右侧(旁边)说明, 示例代码如下:

print("hello python")  # 输出 `hello python`

为了保证代码的可读性,注释和代码之间 至少要有 两个空格

多行注释

要在 Python 程序中使用多行注释,可以用 一对 连续的 三个 引号(单引号和双引号都可以)
示例代码如下:

"""
这是一个多行注释

在多行注释之间,可以写很多很多的内容……
""" 
print("hello python")

2. 变量的使用

变量定义

在 Python 中,每个变量 在使用前都必须赋值,变量 赋值以后 该变量 才会被创建
等号=用来给变量赋值,= 左边是一个变量名, = 右边是存储在变量中的值, 示例代码如下:

# 定义 qq 号码变量
qq_number = "1234567"

# 定义 qq 密码变量
qq_password = "123"

# 在程序中,如果要输出变量的内容,需要使用 print 函数
print(qq_number)
print(qq_password)

此外,还可以用 其他变量的计算结果 来定义变量, 变量定义之后,后续就可以直接使用了, 例如:

# 定义价格变量
price = 8.5

# 定义购买重量
weight = 7.5

# 计算金额
money = price * weight

print(money)

变量名 只有在 第一次出现 才是 定义变量,变量名 再次出现,是直接使用之前定义过的变量, 变量是可以重写赋值的.

money = money - 5

变量的类型

在内存中创建一个变量,会包括:

  • 变量的名称
  • 变量保存的数据
  • 变量存储数据的类型
  • 变量的地址
    在 Python 中定义变量是 不需要指定类型, 数据类型可以分为 数字型 和 非数字型
  • 数字型
    • 整型 (int)
    • 浮点型(float)
    • 布尔型(bool)
      • 真 True 非 0 数 —— 非零即真
      • 假 False 0
    • 复数型 (complex)
      • 主要用于科学计算
  • 非数字型
    • 字符串
    • 列表
    • 元组
    • 字典
    • set(集合)
      提示:在 Python 2.x 中,整数 根据保存数值的长度还分为:int(整数)long(长整数), 使用 type 函数可以查看一个变量的类型

不同类型变量之间的计算

(1) 数字型变量 之间可以直接计算
在 Python 中,两个数字型变量是可以直接进行 算数运算的, 如果变量是 bool 型,在计算时True 对应的数字是 1,False 对应的数字是 0

(2) 字符串变量 之间使用 + 拼接字符串
在 Python 中,字符串之间可以使用 + 拼接生成新的字符串

first_name = "张"
last_name = "三"
print(first_name + last_name)

(3) 字符串变量 可以和 整数 使用 * 重复拼接相同的字符串

(4) 数字型变量 和 字符串 之间 不能进行其他计算

变量的输入

所谓 输入,就是 用代码 获取 用户通过 键盘 输入的信息, 在 Python 中,如果要获取用户在 键盘 上的输入信息,需要使用到 input 函数, 键盘输入的任何内容 Python 都认为是一个 字符串

类型转换

有时候,我们需要对数据内置的类型进行转换,数据类型的转换,一般情况下你只需要将数据类型作为函数名即可。

(1) 隐式类型转换
在隐式类型转换中,Python 会自动将一种数据类型转换为另一种数据类型,不需要我们去干预。
对两种不同类型的数据进行运算,较低数据类型(整数)就会转换为较高数据类型(浮点数)以避免数据丢失。如下所示:

num_int = 123
num_flo = 1.23
num_new = num_int + num_flo

print("datatype of num_int:", type(num_int))
print("datatype of num_flo:", type(num_flo))
print("datatype of num_new:", type(num_new))
print("Value of num_new:", num_new)

输出的结果:

datatype of num_int: <class 'int'>
datatype of num_flo: <class 'float'>
datatype of num_new: <class 'float'>
Value of num_new: 124.23

可以看到int和float运算后的类型变成了float

变量的格式化输出

在 Python 中可以使用 print 函数将信息输出到控制台,如果希望输出文字信息的同时,一起输出 数据,就需要使用到 格式化操作符,% 被称为 格式化操作符,专门用于处理字符串中的格式,包含 % 的字符串,被称为 格式化字符串,% 和不同的 字符 连用,不同类型的数据 需要使用 不同的格式化字符

语法格式如下:

print("格式化字符串" % 变量1)

print("格式化字符串" % (变量1, 变量2...))

例如:

name = "张三"
student_no = 110
price = 4.5
weight = 3
money = price * weight
scale = 0.1
print("我的名字叫 %s,请多多关照!" % name)
print("我的学号是 %06d" % student_no)
print("苹果单价 %.02f 元/斤,购买 %.02f 斤,需要支付 %.02f 元" % (price, weight, money))
print("数据比例是 %.02f%%" % (scale * 100))

输出结果:

我的名字叫 张三,请多多关照!
我的学号是 000110
苹果单价 4.50 元/斤,购买 3.00 斤,需要支付 13.50 元
数据比例是 10.00%

变量的命名

(1) 标识符
标示符就是程序员定义的 变量名、函数名
标示符可以由 字母、下划线 和 数字 组成, 不能以数字开头,不能与关键字重名

(2) 关键字
关键字 就是在 Python 内部已经使用的标识符, 它具有特殊的功能和含义,开发者 不允许定义和关键字相同的名字的标示符,通过以下命令可以查看 Python 中的关键字
通过以下代码可以查看内置的关键字

import keyword
print(keyword.kwlist)

输出结果:

['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', '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 中的 标识符 是 区分大小写的,在定义变量时,为了保证代码格式,= 的左右应该各保留一个空格,在 Python 中,如果 变量名 需要由 二个 或 多个单词 组成时,可以按照以下方式命名:

  • 每个单词都使用小写字母
  • 单词与单词之间使用 _下划线 连接

3. 判断语句

if 语句使用

在 Python 中,if 语句 就是用来进行判断的,格式如下:

if 要判断的条件:
    条件成立时,要做的事情
    ……

例如:

# 1. 定义年龄变量
age = 18
# 2. 判断是否满 18 岁
# if 语句以及缩进部分的代码是一个完整的代码块
if age >= 18:
    print("可以进网吧嗨皮……")

else语句使用

else语句可以在不满足条件的时执行,格式如下:

if 要判断的条件:
    条件成立时,要做的事情
    ……
else:
    条件不成立时,要做的事情
    ……

注意:if 和 else 语句以及各自的缩进部分共同是一个 完整的代码块

elif语句使用

如果希望增加一些条件,条件不同,需要执行的代码也不同 时,就可以使用 elif,语法格式如下:

if 条件1:
    条件1满足执行的代码
    ……
elif 条件2:
    条件2满足时,执行的代码
    ……
elif 条件3:
    条件3满足时,执行的代码
    ……
else:
    以上条件都不满足时,执行的代码
    ……

注意:elif 和 else 都必须和 if 联合使用,而不能单独使用,可以将 if、elif 和 else 以及各自缩进的代码,看成一个 完整的代码块

if语句的嵌套使用

if 条件 1:
    条件 1 满足执行的代码
    ……

    if 条件 1 基础上的条件 2:
        条件 2 满足时,执行的代码
        ……    

    # 条件 2 不满足的处理
    else:
        条件 2 不满足时,执行的代码

# 条件 1 不满足的处理
else:
    条件1 不满足时,执行的代码
    ……

4. 运算符

算数运算符


在 Python 中 * 运算符还可以用于字符串,计算结果就是字符串重复指定次数的结果

比较运算符


另外,Python 2.x 中判断 不等于 还可以使用 <> 运算符

逻辑运算符

Python 中的 逻辑运算符 包括:与 (and)/或 (or)/非 (not) 三种

赋值运算符

在 Python 中,使用 = 可以给变量赋值

运算符的优先级

和数学中的运算符的优先级一致,在 Python 中进行数学计算时,同样也是:先乘除后加减, 同级运算符是 从左至右 计算, 可以使用 () 调整计算的优先级
以下表格的算数优先级由高到最低顺序排列

5. 循环语句

while 循环基本使用

循环的作用就是让 指定的代码 重复的执行,while 循环最常用的应用场景就是 让执行的代码 按照 指定的次数 重复 执行, 基本语法如下:

while 判断条件 :
    # 条件成立,重复执行

例如计算 0 ~ 100 之间所有偶数的累计求和结果

result = 0
i = 0
while i < 100:
    if i % 2 == 0:
        result += i
    i += 1
print("偶数结果是%d" % result)

注意:循环结束后,之前定义的计数器条件的数值是依旧存在的

break 和 continue关键字

break 和 continue 是专门在循环中使用的关键字,break 某一条件满足时,退出循环,不再执行后续重复的代码,continue 某一条件满足时,跳过后面的代码, 重新进入下一次循环
(1) break
在循环过程中,如果 某一个条件满足后,不再希望 循环继续执行,可以使用 break 退出循环, 例如:

i = 0
while i < 10:
    # break 某一条件满足时,退出循环,不再执行后续重复的代码
    if i == 3:
        break
    print(i)
    i += 1
print("over")

输出结果:

0
1
2
over

(2) continue
在循环过程中,某一条件满足时,跳过后面的代码, 重新进入下一次循环,可以使用 continue ,例如:

i = 0
while i < 5:
    if i == 3:
        i += 1
        continue  # 循环执行到此会重新进入循环
    # 重复执行的代码
    print(i)
    i += 1

输出结果:

0
1
2
4

while 循环嵌套

while 嵌套就是:while 里面还有 while

while 条件 1:
    条件1满足时,做的事情
    ...(省略)...

    while 条件 2:
        条件2满足时,做的事情
        ...(省略)...
        处理条件 2

    处理条件 1

使用示例
(1) 在控制台连续输出五行 *,每一行星号的数量依次递增

row = 0
while row < 5:
    row += 1
    print("*" * row)

输出结果:

*
**
***
****
*****

假设 Python 没有提供 字符串的 * 操作 拼接字符串,那么就需要使用嵌套循环来解决了, 代码如下:

row = 0
while row < 5:
    row += 1
    col = 0
    while col < row:
        print("*", end="")  # 默认end="\\n",表示在结尾处输出一个换行符,这里替换为"",表示不换行
        col += 1
    print("")

(2) 在控制台中输出九九乘法表

# 定义起始行
row = 0
while row < 9:
    row += 1
    # 定义起始列
    col = 1
    while col <= row:
        # end="\\t" 表示每一行后面带一个制表符
        print("%d * %d = %d" % (col, row, row * col), end="\\t")
        col += 1
    print("")

结果如下:

注意 常用的的转义字符有
\\ : 反斜杠符号
’ : 单引号
" :双引号
\\n :换行
\\t : 横向制表符
\\r : 回车

while…else循环

语法如下:

while 布尔表达式:
    代码块
else:
    代码块

当 while 循环正常执行完的情况下,执行 else 输出,如果 while 循环中执行了跳出循环的语句,比如 break ,将不执 行 else 代码块的内容。
例如:

i=0
while i<5:
    print(i)
    i+=1
else:
    print('hello world')

输出结果:

0
1
2
3
4
hello world

for in 循环

语法如下:

for iterating_var in sequence:
   代码块

例如:

# 第一个实例
for letter in 'Python':     
   print '当前字母 :', letter

# 第二个实例
fruits = ['banana', 'apple',  'mango']
for fruit in fruits:        
   print '当前字母 :', fruit

# 第三个实例
for index in range(len(fruits)):
   print ('当前水果 : %s' % fruits[index])

输出结果:

当前字母 : P
当前字母 : y
当前字母 : t
当前字母 : h
当前字母 : o
当前字母 : n
当前字母 : banana
当前字母 : apple
当前字母 : mango
当前水果 : banana
当前水果 : apple
当前水果 : mango

for…else循环

for … else 表示的意思是else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,和while else是同样的功能,例如:

for num in range(1, 5):
    print(num)
else:
    print(f"最后一个数是num")

输出结果:

1
2
3
4
最后一个数是4

6. 非数字型变量的使用

前面介绍过Python 中数据类型可以分为 数字型非数字型, 在 Python 中,所有 非数字型变量 都支持以下特点:

  • 都是一个 序列 sequence,也可以理解为 容器
  • 取值 []
  • 遍历 for in
  • 计算长度、最大/最小值、比较、删除
  • 链接 + 和 重复 *
  • 切片

列表

List(列表) 是 Python 中使用 最频繁 的数据类型,列表专门用于存储 一串 信息,列表用 [] 定义,数据 之间使用 , 分隔, 列表的 索引(下标) 从 0 开始

注意:从列表中取值时,如果 超出索引范围,程序会报错

列表常用操作

定义一个列表格式如下:

变量名 = []

常用的方法如下:

从上表中可以看出除了 删除指定索引的数据 和 获取列表长度 的使用较特殊, 其他都是通过列表名.函数名的方式使用. 例如:

name_list = ["zhangsan", "lisi", "wangwu"]
# 添加指定位置的新元素
name_list.insert(0, "tom")
# 末尾追加新元素
name_list.append("jack")
# 修改元素
name_list[1] = "李四"

print(name_list)

# 删除指定位置的元素
del name_list[2]
# 获取列表的长度
count = len(name_list)

print(name_list, count)

输出结果:

['tom', '李四', 'lisi', 'wangwu', 'jack']
['tom', '李四', 'wangwu', 'jack'] 4

列表的遍历

遍历 就是 从头到尾 依次 从 列表 中获取数据,在 Python 中为了提高列表的遍历效率,专门提供的 迭代 iteration 遍历,使用 for 就能够实现迭代遍历, 例如:

name_list = ["zhangsan", "lisi", "wangwu"]
for name in name_list:
    print("name=%s" % name)

输出结果:

name=zhangsan
name=lisi
name=wangwu

注意: Python 的 列表 中可以 存储不同类型的数据, 大多数情况下建议列表存储相同类型的数据

元组

元组的定义

Tuple(元组)/'tʌpl/ 与列表类似,不同之处在于元组的 元素不能修改, 元组表示多个元素组成的序列,用于存储 一串 信息,数据 之间使用 , 分隔,元组用 () 定义,元组的 索引 从 0 开始

创建空元组

info_tuple = ()
# 或者
info_tuple = tuple()

元组中 只包含一个元素 时,需要 在元素后面添加逗号

info_tuple = (50, )

元组常用操作

在pycharm中通过元组的名字输入.的时候会看到2个函数, count和index, 使用如下:

info = ("aaa", "aaa", "bbb", "ccc")
print(info.count("aaa"))
print(info.index("ccc"))

输出结果:

2
3

由此可知, count是计算元素在元组中出现的次数, index是获取元素在元组中的索引(下标),从0开始计算。

此外,通过pycharm的提示,发现可以使用__getitem__(索引)方法来获取指定位置的元组元素,例如:

info = ("aaa", "aaa", "bbb", "ccc")
print("第一个元素:%s,最后一个元素:%s" % 
    (info.__getitem__(0), info.__getitem__(len(info) - 1)))

元组的遍历

遍历 就是 从头到尾 依次 从 元组 中获取数据 ,同样可以用for in来循环, 使用如下:

for item in info:
    print(item)
  • 在 Python 中,可以使用 for 循环遍历所有 非数字型类型 的变量:列表、元组、字典 以及 字符串
  • 在实际开发中,除非 能够确认元组中的数据类型,否则针对元组的循环遍历需求并不是很多

(4) 元组和列表之间的转换
使用 list 函数可以把元组转换成列表

list(元组) 

使用 tuple 函数可以把列表转换成元组

tuple(列表)

例如:

# 定义元组info
info = ("aaa", "aaa", "bbb", "ccc")
print("info的内容:", info)
print("info的类型:", type(info))

# 元组转list
info_list = list(info)
print("info_list的内容:", info_list)
print("info_list的类型:", type(info_list))

# list转元组
info_tuple = tuple(info_list)
print("info_tuple的内容:", info_tuple)
print("info_tuple:", type(info_tuple))

输出结果:

info的内容: ('aaa', 'aaa', 'bbb', 'ccc')
info的类型: <class 'tuple'>

info_list的内容: ['aaa', 'aaa', 'bbb', 'ccc']
info_list的类型: <class 'list'>

info_tuple的内容: ('aaa', 'aaa', 'bbb', 'ccc')
info_tuple: <class 'tuple'>

字典

字典的定义

dictionary(字典) 是 除列表以外 Python 之中 最灵活 的数据类型, 字典同样可以用来存储任意类型对象,通常用于存储 描述一个 物体 的相关信息

和列表的区别:

  • 列表 是 有序 的对象集合
  • 字典 是 无序 的对象集合

字典用 定义,字典使用 键值对 存储数据,键值对之间使用 , 分隔

  • 键 key 是索引
  • 值 value 是数据
  • 键 和 值 之间使用 : 分隔
  • 键 必须是唯一的
  • 值 可以取任何数据类型,但 键 只能使用 字符串、数字或 元组

例如:

xiaoming = "name": "小明",
            "age": 18,
            "gender": True,
            "height": 1.75

字典常用操作

  • clear()

作用:删除字典中的所有项
返回值:该方法没有返回值,或者说返回None
用法:d.clear()

  • get()

作用:get方法也能够根据键获得值,但比d[key]的方式取值更好用,d[key]只适用于键存在的情况(否则会抛出异常),而get方法在键不存在时返回None,不会抛出异常
返回值:返回字典的key对应的value, 没有该value则返回None
用法:value = d.get(key) 或者 value = d.get(key, defaultValue),其中defaultValue在get取不到值的时候返回

  • items()

作用:返回一个包含所有字典项的列表,其中每个元素都为(key, value)的形式。
返回值:items方法返回的是一个"字典视图",dict_items类型, 里面是一个包含所有字典项的列表。
用法:t = d.items()
注意: "字典视图"是特殊类型,可用于迭代,可使用len(t)。但是不能当做正常的字典来用,比如:不能t[‘name’] 或者 t[0]

  • keys()

作用:返回一个包含所有字典key的列表,也属于"字典视图",类型为dict_keys。
用法:k = d.keys()

得到"字典视图"类型后可以转成list类型或者tuple类型,例如:

a = 'name': 'tom', 'age': 20

a_key = a.keys()
print('type=%s,content=%s' % (type(a_key), a_key)) 
a_list = 

以上是关于Python基础语法的主要内容,如果未能解决你的问题,请参考以下文章

Python基础语法

python 速成笔记 [基础语法 一]

Python基础开发 day1

python的基本语法

python基础

Python需要学习啥内容,好学吗?