python入门——安装&基础语法

0.安装与准备

0-1 安装

1. Python

https://www.python.org Python 3.10.4

2. IDE

Vs code / Pycharm

0-2 准备

  • 中英文字符 ()- () …
  • 编码规则 utf-8

1.入门

1-1 基础语法

1. 标志符

1) 规则
  • 第一个字符必须是字母表中字母或下划线 _
  • 标识符的其他的部分由字母、数字和下划线组成。
  • 标识符对大小写敏感。
2) 保留字
>>> 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']

2 注释

# 第一个注释
# 第二个注释
 
'''
第三注释
第四注释
'''
 
"""
第五注释
第六注释
"""
print ("Hello, Python!")

3. 行与缩进

  • 缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。

  • 多行语句

  • # Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠 \ 来实现多行语句
    total = item_one + \
            item_two + \
            item_three
            
    # 在 [], {}, 或 () 中的多行语句,不需要使用反斜杠 \
    total = ['item_one', 'item_two', 'item_three',
            'item_four', 'item_five']
    
  • Python 可以在同一行中使用多条语句,语句之间使用分号 ; 分割

4. 类型

1) 数字(Number)类型
  • int(整数)
  • bool(布尔)
  • float(浮点数)
  • complex(复数)
2.) 字符串(String)类型
  • Python 中单引号 '和双引号 " 使用完全相同。
  • 使用三引号(''' 或 *""")可以指定一个多行字符串。
  • 转义符 \
  • 反斜杠可以用来转义,使用 r让反斜杠不发生转义。 如 r"this is a line with \n"\n 会显示,并不是换行。
  • 按字面意义级联字符串,如 "this " "is " "string" 会被自动转换为this is string
  • 字符串可以用 + 运算符连接在一起,用 * 运算符重复。
  • Python 中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始。
  • Python 中的字符串不能改变。
  • Python 没有单独的字符类型,一个字符就是长度为 1 的字符串。
  • 字符串的截取的语法格式如下:变量[头下标:尾下标:步长]

5. print 输出

  • print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 end=""

    • print( "hello world!", end=" " )

6. import

  • 在 python 用 import 或者 from…import 来导入相应的模块。
  • 将整个模块(somemodule)导入,格式为: import somemodule
  • 从某个模块中导入某个函数,格式为: from somemodule import somefunction
  • 从某个模块中导入多个函数,格式为: from somemodule import firstfunc, secondfunc, thirdfunc
  • 将某个模块中的全部函数导入,格式为: from somemodule import \*

1-2 基本数据类型

1. 标准数据类型

Python3 的六个标准数据类型中:

  • **不可变数据(3 个):**Number(数字)、String(字符串)、Tuple(元组)
  • **可变数据(3 个):**List(列表)、Dictionary(字典)、Set(集合)

2. 赋值

1) 等号(=) —> 赋值

2) 连续赋值 a = b = c = 1

3. Number(数字)

  • int、float、bool、complex(复数)

  • 内置的 type() 函数可以用来查询变量所指的对象类型

    • # type()
      >>> a, b, c, d = 20, 5.5, True, 4+3j
      >>> print(type(a), type(b), type(c), type(d))
      <class 'int'> <class 'float'> <class 'bool'> <class 'complex'>
      
      # isinstance
      >>> a = 111
      >>> isinstance(a, int)
      True
      
  • 可用 del 与聚集删除一些对象的引用

    • del var
      del var_a, var_b
      
  • 两种除法

    • / 返回一个浮点数,// 返回一个整数。

    • >>> 2 / 4  # 除法,得到一个浮点数
      0.5
      >>> 2 // 4 # 除法,得到一个整数
      0
      

4. String(字符串)

字符串截取

  • 在这里插入图片描述

  • 注意

    • 1、反斜杠可以用来转义,使用r可以让反斜杠不发生转义。
    • 2、字符串可以用+运算符连接在一起,用*运算符重复。
    • 3、Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。
    • 4、Python中的字符串不能改变。

5. List(列表)

  • 注意
    • 1、List写在方括号之间,元素用逗号隔开。
    • 2、和字符串一样,list可以被索引和切片。
    • 3、List可以使用+操作符进行拼接。
    • 4、List中的元素是可以改变的。
  • 如果第三个参数为负数表示逆向读取

6. Tuple(元组)

  • 元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开

  • 构造包含 0 个或 1 个元素的元组比较特殊,所以有一些额外的语法规则

    • tup1 = ()    # 空元组
      tup2 = (20,) # 一个元素,需要在元素后添加逗号
      
  • 注意

    • 1、与字符串一样,元组的元素不能修改。
    • 2、元组也可以被索引和切片,方法一样。
    • 3、注意构造包含 0 或 1 个元素的元组的特殊语法规则。
    • 4、元组也可以使用+操作符进行拼接。

7. Set(集合)

  • 可以使用大括号 { } 或者 set() 函数创建集合

    • 注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
  • e.g.

    • sites = {'Google', 'Taobao', 'Runoob', 'Facebook', 'Zhihu', 'Baidu'}
      
      print(sites)   # 输出集合,重复的元素被自动去掉
      
      # 成员测试
      if 'Runoob' in sites :
          print('Runoob 在集合中')
      else :
          print('Runoob 不在集合中')
      
      
      # set可以进行集合运算
      a = set('abracadabra')
      b = set('alacazam')
      
      print(a)
      
      print(a - b)     # a 和 b 的差集
      
      print(a | b)     # a 和 b 的并集
      
      print(a & b)     # a 和 b 的交集
      
      print(a ^ b)     # a 和 b 中不同时存在的元素
      

8. Dictionary(字典)

  • 字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。

  • 键(key)必须使用不可变类型。

  • 在同一个字典中,键(key)必须是唯一的。

  • e.g.

    • #!/usr/bin/python3
      
      dict = {}
      dict['one'] = "1 - 菜鸟教程"
      dict[2]     = "2 - 菜鸟工具"
      
      tinydict = {'name': 'runoob','code':1, 'site': 'www.runoob.com'}
      
      
      print (dict['one'])       # 输出键为 'one' 的值
      print (dict[2])           # 输出键为 2 的值
      print (tinydict)          # 输出完整的字典
      print (tinydict.keys())   # 输出所有键
      print (tinydict.values()) # 输出所有值
      
      # answer
      1 - 菜鸟教程
      2 - 菜鸟工具
      {'name': 'runoob', 'code': 1, 'site': 'www.runoob.com'}
      dict_keys(['name', 'code', 'site'])
      dict_values(['runoob', 1, 'www.runoob.com'])
      

9. 数据类型转换

函数描述
[int(x ,base])将x转换为一个整数
float(x)将x转换到一个浮点数
[complex(real ,imag])创建一个复数
str(x)将对象 x 转换为字符串
repr(x)将对象 x 转换为表达式字符串
eval(str)用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s)将序列 s 转换为一个元组
list(s)将序列 s 转换为一个列表
set(s)转换为可变集合
dict(d)创建一个字典。d 必须是一个 (key, value)元组序列。
frozenset(s)转换为不可变集合
chr(x)将一个整数转换为一个字符
ord(x)将一个字符转换为它的整数值
hex(x)将一个整数转换为一个十六进制字符串
oct(x)将一个整数转换为一个八进制字符串

1-3 推导式

1. 列表(list)推导式

  • 格式

    • [表达式 for 变量 in 列表] 
      [out_exp_res for out_exp in input_list]
      或者 
      [表达式 for 变量 in 列表 if 条件]
      [out_exp_res for out_exp in input_list if condition]
      
      # 注释
      # ·out_exp_res:列表生成元素表达式,可以是有返回值的函数。
      # ·for out_exp in input_list:迭代 input_list 将 out_exp 传入到 out_exp_res 表达式中。
      # ·if condition:条件语句,可以过滤列表中不符合条件的值。
      
  • e.g.

    • # 过滤掉长度小于或等于3的字符串列表,并将剩下的转换成大写字母:
      >>> names = ['Bob','Tom','alice','Jerry','Wendy','Smith']
      >>> new_names = [name.upper() for name in names if len(name)>3]
      >>> print(new_names)
      ['ALICE', 'JERRY', 'WENDY', 'SMITH']
      
      # 计算 30 以内可以被 3 整除的整数:
      >>> multiples = [i for i in range(30) if i % 3 == 0]
      >>> print(multiples)
      [0, 3, 6, 9, 12, 15, 18, 21, 24, 27]
      

2. 字典(dict)推导式

  • { key_expr: value_expr for value in collection }
    # 或
    { key_expr: value_expr for value in collection if condition }
    
  • e.g.

    • listdemo = ['Google','Runoob', 'Taobao']
      # 将列表中各字符串值为键,各字符串的长度为值,组成键值对
      >>> newdict = {key:len(key) for key in listdemo}
      >>> newdict
      {'Google': 6, 'Runoob': 6, 'Taobao': 6}
      

3. 集合(set)推导式

  • { expression for item in Sequence }{ expression for item in Sequence if conditional }
    
  • e.g.

    • a = {x for x in 'abracadabra' if x not in 'abc'}
      a
      {'d', 'r'}
      type(a)
      <class 'set'>
      

4. 元组(tuple)推导式

  • (expression for item in Sequence )(expression for item in Sequence if conditional )
    
  • e.g.

    • >>> a = (x for x in range(1,10))
      >>> a
      <generator object <genexpr> at 0x7faf6ee20a50>  # 返回的是生成器对象
      
      >>> tuple(a)       # 使用 tuple() 函数,可以直接将生成器对象转换成元组
      (1, 2, 3, 4, 5, 6, 7, 8, 9)
      

1-4 运算符

1. 算术运算符

运算符描述实例
+加 - 两个对象相加a + b 输出结果 31
-减 - 得到负数或是一个数减去另一个数a - b 输出结果 -11
*乘 - 两个数相乘或是返回一个被重复若干次的字符串a * b 输出结果 210
/除 - x 除以 yb / a 输出结果 2.1
%取模 - 返回除法的余数b % a 输出结果 1
**幂 - 返回x的y次幂a**b 为10的21次方
//取整除 - 向下取接近商的整数9//2 为4

2. 比较运算符

运算符描述实例
==等于 - 比较对象是否相等(a == b) 返回 False。
!=不等于 - 比较两个对象是否不相等(a != b) 返回 True。
>大于 - 返回x是否大于y(a > b) 返回 False。
<小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。(a < b) 返回 True。
>=大于等于 - 返回x是否大于等于y。(a >= b) 返回 False。
<=小于等于 - 返回x是否小于等于y。(a <= b) 返回 True。

3. 赋值运算符

运算符描述实例
=简单的赋值运算符c = a + b 将 a + b 的运算结果赋值为 c
+=加法赋值运算符c += a 等效于 c = c + a
-=减法赋值运算符c -= a 等效于 c = c - a
*=乘法赋值运算符c *= a 等效于 c = c * a
/=除法赋值运算符c /= a 等效于 c = c / a
%=取模赋值运算符c %= a 等效于 c = c % a
**=幂赋值运算符c **= a 等效于 c = c ** a
//=取整除赋值运算符c //= a 等效于 c = c // a
:=海象运算符,可在表达式内部为变量赋值。Python3.8 版本新增运算符在这个示例中,赋值表达式可以避免调用 len() 两次:if (n := len(a)) > 10: print(f"List is too long ({n} elements, expected <= 10)")

4. 位运算符

运算符描述实例
&按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0(a & b) 输出结果 12 ,二进制解释: 0000 1100
|按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。(a | b) 输出结果 61 ,二进制解释: 0011 1101
^按位异或运算符:当两对应的二进位相异时,结果为1(a ^ b) 输出结果 49 ,二进制解释: 0011 0001
~按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1(~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。
<<左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。a << 2 输出结果 240 ,二进制解释: 1111 0000
>>右移动运算符:把">>“左边的运算数的各二进位全部右移若干位,”>>"右边的数指定移动的位数a >> 2 输出结果 15 ,二进制解释: 0000 1111

5. 逻辑运算符

运算符逻辑表达式描述实例
andx and y布尔"与" - 如果 x 为 False,x and y 返回 x 的值,否则返回 y 的计算值。(a and b) 返回 20。
orx or y布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。(a or b) 返回 10。
notnot x布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。not(a and b) 返回 False

6. 成员运算符

运算符描述实例
in如果在指定的序列中找到值返回 True,否则返回 False。x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
not in如果在指定的序列中没有找到值返回 True,否则返回 False。x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。

7. 身份运算符

运算符描述实例
isis 是判断两个标识符是不是引用自一个对象x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False
is notis not 是判断两个标识符是不是引用自不同对象x is not y , 类似 id(x) != id(y)。如果引用的不是同一个对象则返回结果 True,否则返回 False。
  • id()函数用于获取对象内存地址。
  • is 与 == 区别
    • is 用于判断两个变量引用对象是否为同一个
    • == 用于判断引用变量的值是否相等。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bayyys

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值