Python 基础

1. 规范

  • Python 严格区分大小写

1.1 命名规范

  • 模块名和包名:小写,单词之间用_分割
  • 类名:首字母大写
  • 文件名:全小写
  • 函数名一律小写,单词之间用_分割
  • 变量命名
    • 变量名只能包含字母、数字和下划线(不能包含空格)
    • 变量名全小写,单词之间用_分割
  • 常量全大写,单词之间用_分割

1.2 下划线

  • 变量
    • 成员变量,单下划线_开头
    • 私有变量,双下划线__开头
  • 函数
    • 成员函数,单下划线_开头
    • 私有函数,双下划线__开头
  • 模块
    • 单下划线_开头的模块:通常表示内部模块,不打算被外部直接使用(不应该直接导入)
    • 双下划线__开头的模块:通常用于特殊用途,如 __init__.py 文件

其他:
专有变量:以__开头 __结尾,一般为 Python 自有变量

单个下划线_ 也可用作临时变量,表示该变量不重要

for _ in range(10):
    print("Hello")

忽略返回值:

_ = some_function()

1.3 代码规范

  • 正确的缩进,避免逻辑错误
  • 分号;用于分隔同一行中的多条语句
  • 换行用于分隔不同的语句,无需分号

空一行:用于类成员函数之间,或者用于区分不同逻辑块
空两行:类与类,类与函数,函数与函数之间

2. 基本语法

2.1 缩进

代码缩进在 Python 中是一种语法

2.2 关键字

keywords description
None 特殊常量,表示空值或缺失值
def 定义函数
pass 占位语句,不执行任何操作
raise 手动抛出异常
with 用于简化异常处理,确保正确地释放资源

查看 Python 关键字

import keyword

keyword = keyword.kwlist
print(f'len(keyword): {len(keyword)}')
print(f'keyword: {keyword}')
len(keyword): 35

['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']

2.4 类型

Python 是强类型语言,这意味着对象的类型是无法改变的,即便其值是可变的

  1. 强类型语言
result = "number" + 5
# 会抛出TypeError

# 要类型转换
result = "number" + str(5)
  1. 类型不能更改
    如果有一个指向某种类型对象的变量,你不能改变这个对象的类型,但是你可以改变这个变量所指向的对象

3. 数据类型

  • Python 是动态类型语言(类型推断)

type() 查看数据类型

print(type("Hello"))

3.1 布尔型(bool)

布尔值:True / False

若值并没有明确地使用布尔值 False 表示,下列情况也会被认为是 False:

布尔值    False
空        None
整数      0 0
浮点数    0 0.0
空串      ''
空列表   []
空元组    ()
空字典    {}
空集      set()

示例:

some_list = []

if not some_list:
    print("it's empty!")

3.2 整型(int)

数中的下划线
使用下划线 _ 作为数位分隔符:1_000_000

3.3 浮点数(flot)

无论是哪种运算,只要有操作数是浮点数,Python默认得到的总是浮点数
任意两个数相除时,结果总是浮点数,即便这两个数都是整数且能整除

print(4 / 2) 
# 输出 2.0

3.4 字符串(str)

单/双引号都行(便于做嵌套)
字符串就是一系列字符,用引号括起的都是字符串,其中的引号可以是单引号,也可以是双引号

message = 'I told my friend, "Python is my favorite language!"'
message2 = "The language 'Python' is named after Monty Python, not the snake."

在编程中,空白泛指任何非打印字符,如空格、制表符和换行符

3.4 列表(list)

  • 列表由一系列按特定顺序排列的元素组成(有序),列表中的元素可以是不同类型的对象
  • 列表用方括号 [] 表示,元素之间用逗号 , 分隔
# 初始化
motorcycles = []

# 添加元素
motorcycles.append('yamaha')
motorcycles.append('suzuki')

3.5 元组(tuple)

  • 元组是一种不可变有序集合类型
  • 元组用圆括号()表示,元素之间用逗号 , 分隔
empty_tuple = ()
multi_tuple = (1, 'apple', 3.14)
single_tuple = ('banana',)

3.6 集合(set)

  • 集合是一个无序不重复元素序列
  • 集合用方括号 {} 表示,元素之间用逗号 , 分隔
empty_set = set()
empty_set.add(1)

set1 = {1, 2, 3}
set2 = set([4, 5, 6])

3.7 字典(dict)

字典是一系列键值对

person = {}
# 空字典
person = {}

person = {'name': 'Alice', 'age': 25}

# 添加 or 更新键值对
person['age'] = 30

languages = {
    'Alice': ['Java', 'Python'],
    'Alan': ['Python'],
    'Tom': ['Go', 'Java']
}

4. 示例

4.1 算术运算

print(9 / 5) # 除法
print(9 // 5) # 整数
print(9 % 5) # 取模
print(2 ** 3) # 幂运算

计算乘方数

# 两个* 或者 pow()
result = 2 ** 3
result = pow(2, 3)

# 取模, (2^3) % 5
result = pow(2, 3, 5)

4.2 循环语句

def while_loop():
    number = 1
    while number < 5:
        print(number)
        number += 1
def for_loop():
    cats = ['audi', 'bmw', 'toyota']
    for cat in cats:
        if cat == 'bmw':
            print(cat.upper())
        else:
            print(cat.title())
def for_loop2():
    cats = ['audi', 'bmw', 'toyota']
    for i, cat in enumerate(cats):
        print(i, cat)
# _ 在 Python 中是一个合法的变量名,通常用于表示一个临时或不重要的变量
def func_loop():
    # 此处的 _ 代表循环的计数器,但它并没有被使用,只作为占位符
    for _ in range(2):
        print("Hello, World!")

4.3 字符串操作

title() 首字母大写

name = 'Python language'
print(f'name.title(): {name.title()}, name.lower(): {name.lower()}, name.upper(): {name.upper()}')

存储数据时,方法lower()很有用。很多时候无法依靠用户来提供正确的大小写,因此需要将字符串先转换为小写,再存储它们

格式化

# f字符串,Python 3.6 引入的,低版本使用format()
first_name = 'Alan'
last_name = 'Turing'
full_name = f'Hello,{first_name} {last_name}'
print(full_name)

# 低版本,每个变量通过一对花括号来引用
format_name = '{} {}'.format(first_name, last_name)
print(format_name)

空白符

print("Languages:\nPython\tJava\tGo")

# 移除空白符
name = ' Python '
print(f'name.rstrip():{name.rstrip()}, name.lstrip():{name.lstrip()}')
print(f'name.strip():{name.strip()}')

转为字符串

motorcycles = ['honda', 'yamaha', 'suzuki']
print('列表长度:' + str(len(motorcycles)))
cars = ['bmw', 'audi', 'toyota', 'subaru']
# str.join(iterable) 将序列中的元素以指定的字符连接成一个新的字符串
print("cars: " + ' '.join(cars))

4.4 生成器

range(start, end) : 左闭右开
range(11) 代表从0到10,不包括11,相当于 range[0,11)
range里面还可以增加步长,比如range(1,11,2) 代表的是[1,3,5,7,9]

def range_loop():
    # range(start, end): start(包含) ~ end(不包含)
    for e in range(1, 3):
        print(e)
    # range(number): 从 0 开始,打印 0 ~ number(不包含)
    for e in range(3):
        print(e)

指定步长 range(start, end, step): start, start+step...

def rang_demo():
    numbers = list(range(1, 6, 2))
    print(numbers)  # [1, 3, 5]
def range_loop():
    ## 打印乘方
    squares = []
    for e in range(1, 6):
        squares.append(e ** 2)
    print(squares)
# 简化:列表解析
def range_loop2():
    squares = [e ** 2 for e in range(1, 6)]
    print(squares)

4.5 随机数

import random

# 生成一个0到1之间的随机浮点数
random_f = random.random()

# 指定范围内的随机浮点数
random_float = random.uniform(1, 3)

# 指定范围内的随机整数
random_int = random.randint(1, 3)

4.6 其他

tup = {'label':'NEGATIVE', 'score':'0.901546'}
print([tup])             # [{'label': 'NEGATIVE', 'score': '0.901546'}]
print(list(tup))         # ['label', 'score']
print(list(tup.items())) # [('label', 'NEGATIVE'), ('score', '0.901546')]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、快捷键 ctr+b 执行ctr+/ 单行注释ctr+c ...
    o_8319阅读 11,133评论 2 16
  • Python-开篇 Python是一种通用的解释型,交互式,面向对象的高级编程语言。它是由Guido van Ro...
    泥人冷风阅读 4,160评论 0 0
  • Python 基础入门系列第二篇,上一篇简单介绍了为什么用 Python,以及安装和配置环境。 这一篇将先介绍基础...
    材才才阅读 2,629评论 0 2
  • Python中默认的编码格式是 ASCII 格式,在没修改编码格式时无法正确打印汉字,所以在读取中文时会报错。 解...
    蔷北阅读 3,180评论 0 0
  • 1. Python概述 1.1 介绍 步骤介绍Python初识;变量和字符串;流程控制语句;运算符;可变类型的数据...
    nimw阅读 3,813评论 1 0

友情链接更多精彩内容