前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 语法基础

Python 语法基础

作者头像
浪漫主义狗
发布2023-02-18 09:21:44
1.1K0
发布2023-02-18 09:21:44
举报
文章被收录于专栏:HAUE_LYS'Blog

1. 数字类型


1.0 type()函数


代码语言:javascript
复制
type(变量)
print(type(变量)) #打印出变量的数据类型

1.1 int


不需要像 C/C++ 一样先定义,直接声明即可。

代码语言:javascript
复制
a = 2
print(type(a))

1.2 float


C/C++ 不同,Python 中的 float 精度更高,范围在 -3.4028235 x 10^38 ~ 3.4028235 x 10^38 之间。

代码语言:javascript
复制
a = 2.333
b = 5.
print(type(a))
print(type(b))

1.3 complex


Python 中可以直接表示复数类型。

代码语言:javascript
复制
a = 1 + 2j
print(type(a))

2. 运算符


2.1 除法


  • 除法:/
  • 向下取整除法 ://
代码语言:javascript
复制
a = 10
b = 3
c = a / b
d = a // b
print("c: ", c, type(c))
print("d: ", d, type(d))

可以得知,/ 运算返回一个 float 类型,而 // 返回 int 类型。


2.2 取余


  • 取余:%
代码语言:javascript
复制
a = 10
b = 3
c = a % b
d = b % a
print("c: ", c, type(c))
print("d: ", d, type(d))

% 运算返回 int 类型。


2.3 乘法


  • 乘法:*
  • 乘方:**
代码语言:javascript
复制
a = 10
b = 3.0
c = a * b
d = a ** b
print("c: ", c, type(c))
print("d: ", d, type(d))

*** 运算返回精度更高的类型。


3. 字符串


3.1 基本操作


声明即可赋值:

代码语言:javascript
复制
a = 'abcd'
b = "abcd"
c = """abcd"""
print("a: ", a, type(a))
print("b: ", b, type(b))
print("c: ", c, type(c))
print(a, b, c)

\ 用于转义,例如:

代码语言:javascript
复制
# a = 'a'bc'd' 错误语句
b = "a'bc'd"
c = "a\'bc\'d"
# print("a: ", a, type(a))
print("b: ", b, type(b))
print("c: ", c, type(c))

取消全部的转义在前面加上 r

代码语言:javascript
复制
print("a\nbcd")
print(r"a\nbcd")

字符串字面值可以包含多行,使用三重引号:"""..."""'''...'''

代码语言:javascript
复制
a = """
    'a' is a string
    Python is instring
"""
print(a)

使用 + 进行拼接,* 进行重复:

代码语言:javascript
复制
a = "abcd"
b = "efgh"
c = a + b
d = a * 2 + b * 3
print("c: ", c, type(c))
print("d: ", d, type(d))

3.2 索引和切片


3.2.1 索引


字符串支持索引(下标访问),第一个字符的索引是 0,单个字符没有专用的类型,就是长度为一的字符串:

代码语言:javascript
复制
a = "abcd"
print(a[0])
print(a[2])

索引支持负数,用负数索引时,从右边开始计数:

代码语言:javascript
复制
a = "abcd"
print(a[0])
print(a[-0])  #-0 和 0 一样
print(a[1])
print(a[-1])  #负数索引从 -1 开始

Python 字符串不能修改,是 immutable 的:

代码语言:javascript
复制
a = "abcd"
# a[0] = "d"  报错

3.2.2 切片


索引可以提取单个字符,切片则提取子字符串:

  • 语法:str[起始位:终止位:步长]
  • 省略开始索引时,默认值为 0,省略结束索引时,默认为到字符串的结尾。
  • 切片开始包括起始位元素,截至到终止位的前一个元素,即不包含终止位元素。
  • 其中步长可省略,默认为1,切片返回一个新的字符串。
代码语言:javascript
复制
a = "abcd"
b = a[0:2]
c = a[2:4]
d = a[:2]
e = a[2:]
f = a[:]
g = a[0:4:2]
h = a[-1::-1]
i = a[0:100]
print(b)
print(c)
print(d)  #起始索引默认为 0
print(e)  #结束索引默认为字符串结尾
print(f)
print(g)  #步长为 2,每 2 个元素取一个
print(h)  #步长为负数,从左往右切
print(i)  #切片越界自动处理

注意:索引越界会报错,切片越界会自动处理。


3.3 常用内置函数


代码语言:javascript
复制
a = "lys is a dog"
print(len(a))  #len() 返回字符串的长度,

print(a.title())  #给每个单词首字母大写
print(a.upper())  #把所有字母变成大写
a = a.upper()
print(a.lower())  #把所有字母变成小写

b = "   lys is a dog   "
print(b.lstrip())  #去除头空格
print(b.rstrip())  #去除尾空格
print(b.strip())  #去除头尾空格

4. 列表与元组


Python 支持多种复合数据类型,可将不同值组合在一起。最常用的列表,是用方括号标注,逗号分隔的一组值。列表可以包含不同类型的元素,但一般情况下,各个元素的类型相同:

代码语言:javascript
复制
a = [1, 2, 3, 4]
b = ['a', 'b', 'c', 'd']
c = ['a', '2', '3.33', "cde"]
d = a + b  #支持 + 合并
e = c * 2 + d * 3  # 支持 * 合并
print("a: ", a, type(a))
print("b: ", b, type(b))
print("c: ", c, type(c))
print("d: ", d, type(d))
print("e: ", e, type(e))

4.1 列表索引和切片


4.1.1 索引


和数组操作相同:

代码语言:javascript
复制
a = [1, 2, 3, 4]
b = ['a', 'b', 'c', 'd']
c = ['a', '2', '3.33', "cde"]
print(a[0])
print(b[1])
print(c[2])

immutable 字符串不同, 列表是 mutable 类型,其内容可以改变:

代码语言:javascript
复制
a = [1, 2, 3, 4]
b = ['a', 'b', 'c', 'd']
c = ['a', '2', '3.33', "cde"]
a[0], b[1], c[2] = 100, 'x', "abc"
print("a: ", a, type(a))
print("b: ", b, type(b))
print("c: ", c, type(c))

4.1.2 切片


切片操作返回包含请求元素的新列表,切片操作会返回列表的浅拷贝

代码语言:javascript
复制
a = [1, 2, 3, 4]
b = a[0:2]
c = a[2:]
print(b)
print(c)

4.2 嵌套列表


代码语言:javascript
复制
a = [1, 2, 3, 4]
b = ['a', 'b', 'c', 'd']
c = ['a', '2', '3.33', "cde"]
e = [a, b, c]
print("e: ", e, type(e))
print(e[0][0], e[1][1], e[2][2])

4.3 列表常用内置函数


代码语言:javascript
复制
a = [1, 2, 3, 4]
print("len(a): ", len(a))  #len() 返回列表的长度

a.append(5)  #在 a 末尾添加元素 5
print("a.append(5): ", a)

a.insert(1, 3)  #在位置 1 处插入元素 3
print("a.insert(1, 3): " ,a)

a.remove(3)  #删除第一个值为 3 的元素
print("a.remove(3): ", a)
#a.remove(0)  删除的元素不存在则会触发 ValueError 异常

a.pop(0)  #pop(i) 删除指定位置 i 的元素
print("a.pop(0):", a)
a.pop()  #未传入参数时默认删除末尾元素
print(a)

a = [1, 2, 3, 4, 5]
del a[1:3]  #删除列表的切片
print("del a[1:3]:", a)

a = [6, 5, 4, 3, 2, 1, 1]
print("a.count(1): ", a.count(1))  #count(x) 返回值为 x 的元素出现的次数

a.sort()  #默认从小到大排序
print("a.sort(): ", a)
a.sort(reverse=True)  #传入参数从大到小排序
print("a.sort(reverse=True): ", a)

a.reverse()  #翻转列表中的元素
print("a.reverse()", a)

a.clear()  #清空
print(len(a))

4.4 元组


元组由多个用逗号隔开的值组成:

代码语言:javascript
复制
a = 1, 2, 3, 4
print("a: ", a, type(a))
b = ('a', 'b', 'c', 'd', a)  #由 () 表示一个元组,可嵌套使用
print("b: ", b, type(b))

输出时,元组都要由圆括号标注,这样才能正确地解释嵌套元组。输入时,圆括号可有可无,不过经常是必须的(如果元组是更大的表达式的一部分)。不允许为元组中的单个元素赋值,当然,可以创建含列表等可变对象的元组。

元组同样支持索引和切片:

代码语言:javascript
复制
a = 1, 2, 'a', 'b'
print(a[0])
print(a[1:3])
#a[0] = 0  不可修改

虽然,元组与列表很像,但使用场景不同,用途也不同。元组是 immutable (不可变的),一般可包含异质元素序列,通过解包索引访问(如果是 namedtuples,可以属性访问)。列表是 mutable (可变的),列表元素一般为同质类型,可迭代访问。


5. 集合与字典


5.1 集合


集合是由不重复元素组成的无序容器,基本用法包括成员检测、消除重复元素。集合对象支持合集、交集、差集、对称差分等数学运算。

代码语言:javascript
复制
a = {1, 2, 3, 4, 5}
print("a: ", a, type(a))

集合运算:

代码语言:javascript
复制
a = {1, 2, 3, 4, 5}
b = {2, 4, 5}
print("1 in a is", 1 in a)
print("1 in b is", 1 in b)
print("a = b is", a == b)
print("a - b =", a - b)
print("b - a =", b - a)
print("a | b =", a | b)
print("a & b =", a & b)
print("a ^ b =", a ^ b)

5.2 字典


字典为键值对的集合,字典的键必须是唯一的:

代码语言:javascript
复制
a = {1:'a', 2:'b', 3:'c', 4:'d'}
print("a: ", a, type(a))
print("a[1]: ", a[1])

b = {'a':1, "bcd":2, 3.4:"e"}
print("b: ", b, type(b))
print("b['a']: ", b['a'])

与以连续整数为索引的序列不同,字典以关键字为索引,关键字通常是字符串或数字,也可以是其他任意不可变类型。只包含字符串、数字、元组的元组,也可以用作关键字。但如果元组直接或间接地包含了可变对象,就不能用作关键字。列表不能当关键字,因为列表可以用索引、切片、append()extend() 等方法修改。

代码语言:javascript
复制
a = {'name': 'wjq', 'sex': 'male', 'qq': 1145141919}
print(a.get('name'))  #通过键获取值,且不会报错
a.pop('qq')  #删除键为 qq 的键值对
print(a.keys())  #获取所有的键
print(a.values())  #获取所有的值
a['name'] = 'lys'  #改值
print("a: ", a, type(a))

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-1-29 1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 数字类型
    • 1.0 type()函数
      • 1.1 int
        • 1.2 float
          • 1.3 complex
          • 2. 运算符
            • 2.1 除法
              • 2.2 取余
                • 2.3 乘法
                • 3. 字符串
                  • 3.1 基本操作
                    • 3.2 索引和切片
                      • 3.2.1 索引
                      • 3.2.2 切片
                    • 3.3 常用内置函数
                    • 4. 列表与元组
                      • 4.1 列表索引和切片
                        • 4.1.1 索引
                        • 4.1.2 切片
                      • 4.2 嵌套列表
                        • 4.3 列表常用内置函数
                          • 4.4 元组
                          • 5. 集合与字典
                            • 5.1 集合
                              • 5.2 字典
                              相关产品与服务
                              容器服务
                              腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                              领券
                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档