Python之--基本知识
基本输出
语法结构: print(输出内容)
print()函数完整的语法格出: print (value,...,sep='',end='\n',file=None)
只有字符串可以用+连接
基本输入
语法结构: x=input('提示文字’)
注意事项: 无论输入的数据是什么 x 的数据类型都是字符串类型
示例:
name = input("Enter your name: ")#单行注释示例
print('我的姓名是:'+name)
fp=open('text.txt','w')#打开文件
print('人生苦短,我用Python',file=fp)#输出内容到文件
fp.close()#关闭文件
a=100
b=50
print(90)
print(a)
print(a*b)
print(a,b,'a+b')
print(chr(65))
print('hello','world',sep='啊',end='//')
print('amazing')
age=input("Enter your age:")
print('我的年龄是:'+age)
print(a,b,sep='',end='')
print('c')
注:输出内容到文件中,如果是中文字符,可能会显示乱码,只要更改这个.txt文件的编码格式为 GBK 就可以了(在 Windows 系统中,CMD 默认使用 GBK 编码,若 Python 脚本以 UTF-8 输出中文,CMD 会显示乱码)
print('北京欢迎您!!')
print("北京欢迎您!!")
print("'北京欢迎您!!'")
print('''北京欢迎您''')
在Python中,单双引号是等价的。
可以将单双引号交替使用来避免转义
保留字(关键字)
Python 语言中被赋予特定意义的单词,它们在语言内部有固定用途,不能将保留字作为变量名或函数名。Python 版本更新可能会添加或删除保留字,可以通过代码来查看当前版本的保留字列表
import keyword
print(keyword.kwlist) # 输出当前 Python 版本的所有保留字
截至 Python 3.10,共有 35 个保留字:
False await else import pass
None break except in raise
True class finally is return
and continue for lambda try
as def from nonlocal while
assert del global not with
async elif if or yield
!!严格区分大小写
标识符
标识符是程序员在程序中为变量、函数、类、模块等自定义的名称。
命名规则:
(1)只能由字母、数字和下划线(_)组成。例如 my_variable、count1 是合法的,而 my-var 是不合法的,因为包含了 -。
(2)不能以数字开头。像 1num 就不是合法的标识符,num1 则是合法的。
(3)不能是 Python 的保留字。比如不能将变量命名为 if、for 等。
(4)区分大小写。MyVar 和 myvar 是两个不同的标识符。
命名习惯:
(1)变量和函数:通常使用小写字母和下划线组合的方式,如 student_name、calculate_sum。
(2)类:采用驼峰命名法,即每个单词的首字母大写,如 StudentInfo、PersonClass。
(3)常量:一般用全大写字母和下划线组合,如 MAX_VALUE、PI。
基本数据类型
int(整型)
不限长度,支持任意大小的整数。
x = 100
y = -5
z = 1_000_000 # 下划线分隔大数字
float(双精度浮点型)
表示小数,支持科学计数法。
x = 3.14
y = 1.23e6 # 等同于 1.23 * 10^6
**和C/C++不同的是,C/C++的 float 为单精度浮点值,double 为双精度浮点值。在 Python 中不会专门区别单双精度,全部按照双精度来处理。
内置函数 round():用于对数字进行四舍五入操作。
语法
round(number, ndigits)
number:必填参数,表示要进行四舍五入的数字,可以是整数、浮点数等数值类型。
ndigits:可选参数,表示要保留的小数位数。如果不提供该参数,round() 函数会将数字四舍五入到最接近的整数。
1. 不指定保留小数位数,四舍五入到整数
num1 = 3.14159
result1 = round(num1)
print(result1)num2 = 2.99
result2 = round(num2)
print(result2)
round(3.14159) 会将 3.14159 四舍五入到最接近的整数,结果为 3;round(2.99) 四舍五入后结果为 3。
2. 指定保留小数位数
num3 = 3.14159
result3 = round(num3, 2)
print(result3)num4 = 5.6789
result4 = round(num4, 1)
print(result4)
round(3.14159, 2) 表示将 3.14159 四舍五入到保留两位小数,结果是 3.14;round(5.6789, 1) 会把 5.6789 四舍五入到保留一位小数,结果为 5.7。
3. 特殊情况
当舍去部分的最高位恰好为 5,且 5 后面没有其他数字或全为 0 时,如果保留部分的末位数字是偶数,则直接舍去 5(不进位)。如果保留部分的末位数字是奇数,则进位(末位加 1)。
print(round(2.5)) # 结果:2(保留部分末位是2,偶数,舍去5)
print(round(3.5)) # 结果:4(保留部分末位是3,奇数,进位)print(round(2.35, 1)) # 结果:2.4(保留部分末位是3,奇数,进位)
print(round(2.45, 1)) # 结果:2.4(保留部分末位是4,偶数,舍去5)
complex(复数型)
实部和虚部组成,虚部用 j 表示。
x = 3 + 4j
print(x.real) # 输出: 3.0
print(x.imag) # 输出: 4.0
bool(布尔型)
只有两个值 True 和 False,用于逻辑判断。
True = 1,False = 0
布尔值为 False 的情况:
(1)False 或者 None
(2)数值中的 0,包含 0,0.0,虚数 0
(3)空序列,包含空字符串、空元组、空列表、空字典、空集合
o=True
print(o)
print(o+10)
q=False
print(q)
print(q+10)#非零的字符串布尔值为True
print(bool('北京欢迎你'))
print(bool(''))
str(字符串型)
表示文本,用单引号、双引号或三引号包裹。
x = "Hello"
y = 'World'
z = """多行字符串"""
inform='''
你好
世界
'''
print(inform)
**在 Python 中,没有独立的字符(Character)型,而是将单个字符视为长度为 1 的字符串(str 型)。
常见用法:
对字符串中某个子串或区间的检索称为切片
切片的语法结构:字符串或字符串变量 [N:M](从n开始到m结束但是不包含m)
字符串索引从左到右的取值范围:0 到 n-1;
字符串索引从右到左的取值范围:-1到 n;
常用的字符串操作:
(1)x+y 将字符串x与y连接起来
(2)x*n或n*x 复制n次字符串x
(3)x in s 如果x是s的子串,结果为True,否则结果为False
#字符串索引及切片操作
s='helloworld'
print(s[0],s[-10])
print('北京欢迎你'[3])
print('北京欢迎你'[-2])
print(s[2:7])#正向递增
print(s[-8:-3])#反向递减
print(s[:5])#默认从0开始
print(s[5:])#默认切片到结尾#常用的字符串操作
x='2005'
y='小明出生'
z='2'
print(x+y)
print(x*10)
print(x in y,z in x)
数据类型之间的转换
函数 | 描述说明 |
---|---|
int(x) | 将 x 转换为整数类型 |
float(x) | 将 x 转换为浮点数类型 |
str(x) | 将 x 转成字符串 |
chr(x) | 将整数 x 转换为一个字符 |
ord(x) | 将一个字符 x 转换为其对应的整数值 |
hex(x) | 将一个整数 x 转换为一个十六进制字符串 |
oct(x) | 将一个整数 x 转换为一个八进制字符串 |
bin(x) | 将一个整数 x 转换为一个二进制字符串 |
**辨析 str(x) 和 chr(x) :
函数 | str(x) | chr(x) |
---|---|---|
功能 | 将任意对象转换为字符串表示形式 | 将 整数 转换为对应字符 |
参数类型 | 任意类型(整数、列表、自定义对象等) | 必须是整数(范围:0 ~ 1,114,111) |
返回值 | 对象的字符串形式(保留结构) | 长度为 1 的字符串(单个字符) |
典型场景 | 字符串拼接、文件写入、打印调试信息 | 生成特殊字符(如表情符号、非 ASCII 字符) |
(1)处理整数
str(65) # '65'(直接转为数字的文本形式)
chr(65) # 'A'(Unicode 码点 65 对应字符 'A')
(2)处理容器类型
str([1, 2]) # '[1, 2]'(保留列表格式的字符串)
chr([1, 2]) # 报错!chr() 只接受整数
(3)生成特殊字符
chr(128512) # 😀(笑脸表情)
chr(0x4E2D) # 中(Unicode 码点 20013)
容器数据类型
list(列表)
可变、有序的元素集合,支持任意数据类型。
x = [1, "apple", True]
x.append(3.14) # 添加元素
tuple(元组)
不可变、有序的元素集合。
x = (1, "apple", True)
# x[0] = 2 # 错误:元组不可修改
range(范围)
不可变的整数序列,通常用于循环。
x = range(5) # 生成 0, 1, 2, 3, 4
dict(字典)
无序的键值对集合,键必须唯一且不可变。
d = {"name": "Alice", "age": 30} # 键值对用冒号分隔
d = dict(name="Alice", age=30) # 另一种创建方式
print(x["name"]) # 输出: Alice
set(集合)
无序、唯一元素的集合,支持数学集合运算。
s = {1, 2, 3} # 直接用花括号
s = set([1, 2, 3]) # 通过列表创建
s = set() # 创建空集合(不能用 {},否则是字典)
x.add(4) # 添加元素
1、数据去重:
lst = [1, 2, 2, 3, 3, 3]
unique_items = set(lst) # {1, 2, 3}
2、数学集合运算
s1 = {1, 2, 3}
s2 = {3, 4, 5}
print(s1 & s2) # 交集:{3}
print(s1 | s2) # 并集:{1, 2, 3, 4, 5}
print(s1 - s2) # 差集:{1, 2}
转义字符
转义字符 | 描述 | 示例(打印结果) |
---|---|---|
\\ | 反斜杠本身 | print('a\\b') → a\b |
\' | 单引号 | print('I\'m') → I'm |
\" | 双引号 | print("She said: \"Hi\"") → She said: "Hi" |
\n | 换行符(新行) | print('a\nb') →a b |
\t | 制表符(Tab) | print('Name\tAge') → Name Age |
\r | 回车符(覆盖当前行) | print('Hello\rWorld') → World (Hello 被覆盖) |
\b | 退格符(Backspace) | print('abc\bd') → abd (删除 c ) |
print('老师说:\"好好学习,天天向上\"')
print('老师说:"好好学习,天天向上"')#加r/R可以使转义字符失效
print(r'老师说:\"好好学习,天天向上\"')
print(R'老师说:\"好好学习,天天向上\"')
算术运算符
运算符 | 描述说明 | 示例 | 结果 |
---|---|---|---|
+ | 加法 | 1+1 | 2 |
- | 减法 | 1-1 | 0 |
* | 乘法 | 2*3 | 6 |
/ | 除法 | 5/2 | 2.5 |
// | 整除 | 5//2 | 2 |
% | 取余 | 10%3 | 1 |
** | 幂运算 | 2**4 | 16 |
和 C/C++ 的除法计算不同, C/C++ 的除法运算会直接舍去小数部分(相当于 Python 中的整除)
赋值运算符
运算符 | 描述说明 | 示例 | 展开形式 |
---|---|---|---|
= | 简单的赋值运算 | x=y | x=y |
+= | 加赋值 | x+=y | x=x+y |
-= | 减赋值 | x-=y | x=x-y |
*= | 乘赋值 | x*=y | x=x*y |
/= | 除赋值 | x/=y | x=x/y |
%= | 取余赋值 | x%=y | x=x%y |
**= | 幂赋值 | x**=y | x=x**y |
//= | 整除赋值 | x//=y | x=x//y |
比较运算符
运算符 | 描述说明 | 示例 | 结果 |
---|---|---|---|
> | 大于 | 98>90 | True |
< | 小于 | 98<90 | False |
== | 等于 | 98==90 | False |
!= | 不等于 | 98!=90 | True |
>= | 大于或等于 | 98>=98 | True |
<= | 小于或等于 | 98<=98 | True |
逻辑运算符
运算符 | 描述说明 | 用法 | 结合方向 |
---|---|---|---|
and | 逻辑与 | 表达式 1 and 表达式 2 | 从左到右 |
or | 逻辑或 | 表达式 1 or 表达式 2 | 从左到右 |
not | 逻辑非 | not 表达式 | 从右到左 |
表达式 1 | 表达式 2 | 表达式 1 and 表达式 2 | 表达式 1 or 表达式 2 | not 表达式 1 |
---|---|---|---|---|
True | True | True | True | False |
True | False | False | True | False |
False | False | False | False | True |
False | True | False | True | True |
优先级从高到低依次为非与或:not > and > or
位运算符
把数字看作二进制数来进行计算。
按位与(&)、按位或(|)、按位异或(^)//不同为 1 、按位取反(~)
左移位(<<)//左边高位舍弃,右边低位补0、右移位(>>)//右边地位舍弃,左边高位补0
【左乘右除:向左移位是乘法操作,向右移位是除法操作】
运算符的优先级
运算符 | 描述说明 |
---|---|
** | 幂运算 |
~、+、- | 取反、正号、负号 |
*、/、%、// | 算术运算符 |
+、- | 算术运算符 |
<<、>> | 位运算符中的左移位和右移位 |
& | 位运算符中的按位与 |
^ | 位运算符中的异或 |
| | 位运算符中的按位或 |
<、<=、>、>=、!=、== | 比较运算符 |
= | 赋值运算符 |
今天的分享就到这里啦~~
谢谢你的观看!!