文章目录
Python3-基本用法介绍及基本数据类型
1. 基本用法
1.1 字符编码
默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串。
1.2 标识符
标识符:一般用作变量、函数名
①首字符为字母或下划线_
②由字母、数字、下划线组成
③区分大小写
④在python3中,可以用中文或者非ASCII作为标识符。
1.3 保留字
# 查看保留字,保留字是python内置的,不能用作标识符。
# Python Console窗口
import keyword # 导入模块
keyword.kwlist # 保留字列表
['False', 'None', 'True', '__peg_parser__', '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']
# .py文件窗口
import keyword
print(keyword.kwlist)
1.4 注释
# 单行注释
'''
多行注释
'''
"""
多行注释
"""
1.5 缩进
python是使用缩进来标识代码块,不需要使用{}。
缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。
# 正确写法:
if True:
print("a")
print("b")
else:
print("aa")
print("bb")
# 错误写法:
if True:
print("a")
print("b")
else:
print("aa")
print("bb")
1.6 多行语句
a = b = c = d = 1
total = a + \
b + \
c + \
d
print(total)
# 在[] {} ()中的多行语句,不需要使用反斜杠\
1.7 数字(number)类型
类型 | 备注、示例 |
---|---|
int | 整数类型:1 2 3 |
bool | 布尔类型:True False |
float | 浮点型:1.23 2E-2 |
complex | 复数:1+2j i+j |
1.8 字符串(string)
-
python中单引号和双引号使用完全相同。
-
使用三引号(’’'或""")可以指定一个多行字符串。
-
转义符 ‘\’
-
反斜杠可以用来转义,使用r可以让反斜杠不发生转义。r’\n’
-
按字面意义连接字符串,如:"this " "is " “string.”
-
字符串可以用 + 运算符连接在一起,用 * 运算符重复。
-
Python 中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始。
-
Python中的字符串不能改变。
-
Python 没有单独的字符类型,一个字符就是长度为 1 的字符串。
-
字符串的截取的语法格式如下:变量[头下标:尾下标:步长]
name = 'abcdefg'
print(name[0:-1]) # abcdef 索引从左到右第一个是0,从右到左第一个是-1
print(name[1:-1]) # bcdef
print(name[1:3]) # bc
print(name[1:5]) # bcde
print(name[1:5:2]) # bd 1:5即第2 3 4 5个字符,2为步长,即每两个截取一个,也就是第2 4个字符。
1.9 空行
空行可以用在函数之间、类之间、函数和类之间,用于表示一段新的代码的开始。不用也不会报错,但是看起来不太好,使用空行,有利于日后代码的维护和重构。
1.10 接收用户输入
1.11 同一行显示多条语句
多行较短语句放在一行写,需要用分号;
隔开。
1.12 代码块
在python中,缩进相同的一组语句构成一个代码块,也称代码组。
1.13 print输出
# 默认换行输出
print('haha')
print('xixi')
# 不换行输出
print('haha',end=" ")
print('xixi',end=" ")
print() # 输出一个换行
1.14 模块导入
- 导入整个模块:
import mod_name
- 导入模块的某个函数:
from mod_name import fun_name
- 导入模块的某几个函数:
from mod_name import fun1_name fun2_name
- 导入模块的所有函数:
from mod_name import *
# 导入模块
import sys
print(sys.argv) # 可以看到变量argv是一个列表,列表中只有一个值,是python的main脚本路径
print(sys.path) # 可以看到变量path也是一个列表,列表中有许多值,各个值之间用逗号,隔开,这些值是python的环境变量
# 运行结果
['E:/py-project1/main.py'] # sys.argv
['E:\\py-project1', 'E:\\py-project1', 'E:\\python\\python39.zip', 'E:\\python\\DLLs', 'E:\\python\\lib', 'E:\\python', 'E:\\py-project1\\venv', 'E:\\py-project1\\venv\\lib\\site-packages'] # sys.path
# 导入某个变量或函数
from sys import argv
print(argv) # 变量已经导入,不需要使用sys.调用
1.15 命令行查看帮助信息
2. 基本数据类型
2.1 变量赋值
Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。
等号(=)用来给变量赋值。
等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。
可以多个变量赋予相同的值,可以多个变量赋予不同的值
2.2 标准数据类型
数据类型 | 备注 | 示例 | 值是否可修改 |
---|---|---|---|
Number(数字) | Python3 支持 int、float、bool、complex(复数)。只有一种整数类型 int,表示为长整型。 | ![]() type直接获取类型,isinstance判断是不是int数据类型 |
不可变 |
String(字符串) | Python中的字符串用单引号 ’ 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符。 字符串的截取格式:变量[头下标:尾下标:步长] 索引值以 0 为开始值,-1 为从末尾的开始位置。 支持索引和切片,重复 * 和连接+ |
示例见1.8 | 不可变 |
List(列表) | 列表是写在方括号 [] 之间、用逗号分隔开的元素列表。 列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。 列表可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。 截取格式:变量[头下标:尾下标:步长] 支持索引和切片,重复 * 和连接+ |
![]() ![]() ![]() |
可变 |
Tuple(元组) | 元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。 支持索引和切片,重复 * 和连接+ |
![]() |
不可变 |
Set(集合) | 集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。 可以使用大括号 { } 或者 set() 函数创建集合 基本功能是进行成员关系测试和删除重复元素。 创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。 |
![]() |
可变 |
Dictionary(字典) | 字典是无序的对象集合。 字典当中的元素是通过键来存取的,而不是通过偏移存取。 字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。 键(key)必须使用不可变类型。【number string tuple】 在同一个字典中,键(key)必须是唯一的。 |
![]() |
可变 |
type和isinstance的区别:
创建一个变量对象和删除一个变量对象:
数值运算:
翻转字符串:
# 定义函数
def reversewords(input):
inputwords = input.split(" ") # 字符串按分隔符分割成列表
print(inputwords)
inputwords = inputwords[-1::-1]
print(inputwords)
output = ' '.join(inputwords) # 以空格作为分隔符合并列表
return output
if __name__ == "__main__":
input = 'I am abong'
rw = reversewords(input) # 调用函数
print(rw)
空元组和单个元素元组写法:
集合功能:成员测试和集合运算
set1 = {
'a', 'b', 'c', 'd', 1, 2, 3, 4}
set2 = {
'a', 'b', 'e', 'f', 1, 2, 5, 6,}
if 'a' in set1:
print('a在集合中')
else:
print('a不在集合中')
print(set1)
print(set1-set2) # 差集
print(set1|set2) # 并集
print(set1 & set2) # 交集
print(set1 ^ set2) # set1和set2中不同时存在的元素集合。
# 运行结果如下:
a在集合中
{
1, 2, 3, 4, 'b', 'a', 'd', 'c'}
{
'c', 'd', 3, 4}
{
1, 2, 3, 4, 5, 'b', 6, 'f', 'e', 'a', 'd', 'c'}
{
1, 2, 'b', 'a'}
{
3, 4, 5, 6, 'f', 'e', 'd', 'c'}
创建字典:
dict = {
}
dict[1] = 'a'
dict[2] = 'b'
print(dict)
print(dict[1]) # 通过键索引对应的值
print(dict[2])
print(dict.keys()) # 查看所有键
print(dict.values()) # 查看所有值
print(dict.clear()) # 清空字典
print(dict)
运行结果:
{
1: 'a', 2: 'b'}
a
b
dict_keys([1, 2])
dict_values(['a', 'b'])
None
{
}
2.3 数据类型转换
函数 | 作用 | 示例 |
---|---|---|
int(x) | x下取整 | int(1.2) |
float(x) | 将x转换为浮点型,精度为1 | float(2) |
complex(a,b) | 创建一个复数,a+bi | complex(1,2) |
str(x) | 将x转换为字符串 | str(1) |
repr(x) | 将x转换为表达式字符串 | repr(2) |
eval(str) | 计算字符串中有效的python表达式,并返回一个对象 | eval(‘1+2’) |
tuple(s) | 将序列 s 转换为一个元组 | tuple(‘12345’) |
list(s) | 将序列 s 转换为一个列表 | list(‘abc’) |
set(s) | 转变为可变集合 | set(‘1123’) |
dict(s) | 创建一个字典,d是一个列表,其元素为(key,value)元组。 | dict([(1,‘a’),(2,‘b’)]) |
frozenset(s) | 转换为不可变集合 | frozenset(‘1123’) |
chr(x) | 将一个整数值转换为字符 | chr(38) |
ord(x) | 将一个字符转换为整数值 | ord(’&’) |
hex(x) | 整数转十六进制字符串 | hex(32) |
oct(x) | 整数转八进制字符串 | oct(16) |