python基础知识
注释
# 单行注释:注释一行代码 ctrl + /
print('hello Python') # 简单注释内容
# 注释多行:两种写法(引号选择英文形式)-针对多行、代码块的注释
"""
第一行注释
第二行注释
第三行注释
"""
'''
注释1
注释2
注释3
'''
变量
**变量:**储存数据位置的索引
标识符命名规则是Python中定义各种名字的时候的**统⼀规范,**具体如下:
- 由数字、字⺟、下划线组成
- 不能数字开头,可以放中间或结尾
- 不能使⽤内置关键字
- 严格区分⼤⼩写
命名习惯
⻅名知义。
⼤驼峰:即每个单词⾸字⺟都⼤写,例如: MyName 。
⼩驼峰:第⼆个(含)以后的单词⾸字⺟⼤写,例如: myName 。
下划线:例如: my_name 。
"""
1. 定义变量
语法:变量名 = 值 “=” 赋值号
2. 使用变量
3. 看变量的特点
"""
# 定义变量:存储数据TOM
my_name = 'TOM'
print(my_name)
Bug的处理
代码顶格写
Debug⼯具使⽤步骤:
-
打断点
断点位置
第一行就行
打断点的⽅法
单击⽬标代码的⾏号右侧空⽩位置[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0yNRYlIe-1578309454533)(C:\Users\jinkun\AppData\Roaming\Typora\typora-user-images\1578060371644.png)]
-
调试Debug
打成功断点后,在⽂件内部任意位置 — 右键 – Debug’⽂件名’ — 即可调出Debug⼯具⾯板 – 单击Step
Over/F8,即可按步执⾏代码。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O04VlcU3-1578309454545)(C:\Users\jinkun\AppData\Roaming\Typora\typora-user-images\1578059958713.png)]
数据类型
"""
1. 按经验将不同的变量存储不同的类型的数据
2. 验证这些数据到底是什么类型 -- 检测数据类型 -- type(数据)
"""
# int -- 整型
num1 = 1
# float -- 浮点型,就是小数
num2 = 1.1
type(num1) #控制台不会输出内容
print(type(num1)) #输出
print(type(num2))
# str -- 字符串,特点:数据都要带引号
a = 'hello world'
print(type(a))
# bool -- 布尔型,通常判断使用,布尔型有两个取值 True 和 Falseb = Trueprint(type(b))
# list -- 列表
c = [10, 20, 30]
print(type(c))
# tuple -- 元组
d = (10, 20, 30)
print(type(d))
# set -- 集合
e = {10, 20, 30}print(type(e))
# dict -- 字典 -- 键值对
f = {'name': 'TOM', 'age': 18}print(type(f))
输出
格式化输出
换 | |
---|---|
%s | 字符串 |
%d | 有符号的⼗进制整数 |
%f | 浮点数 |
%c | 字符 |
%u | ⽆符号⼗进制整数 |
%o | ⼋进制整数 |
%x | ⼗六进制整数(⼩写ox) |
%X | ⼗六进制整数(⼤写OX) |
%e | 科学计数法(⼩写’e’) |
%E | 科学计数法(⼤写’E’) |
%g | %f和%e的简写 |
%G | %f和%E的简写技巧 |
技巧
%06d,表示输出的整数显示位数,不⾜以0补全,超出当前位数则原样输出
%.2f,表示⼩数点后显示的⼩数位数。
age = 18
name = 'TOM'
weight = 75.5
stu_id = 1
stu_id2 = 1000
# 1. 今年我的年龄是x岁 -- 整数 %d
print('今年我的年龄是%d岁' % age)
# 2. 我的名字是x -- 字符串 %s
print('我的名字是%s' % name)
# 3. 我的体重是x公斤 -- 浮点数 %f
print('我的体重是%.3f公斤' % weight)
# 4. 我的学号是x -- %d
print('我的学号是%d' % stu_id)
# 4.1 我的学号是001
print('我的学号是%03d' % stu_id)
print('我的学号是%03d' % stu_id2)
# 5. 我的名字是x,今年x岁了
print('我的名字是%s,今年%d岁了' % (name, age))
# 5.1 我的名字是x,明年x岁了
print('我的名字是%s,明年%d岁了' % (name, age + 1))
# 6. 我的名字是x,今年x岁了,体重x公斤,学号是x
print('我的名字是%s,今年%d岁了,体重%.2f公斤,学号是%06d' % (name, age, weight, stu_id))
# 我的名字是x,今年x岁了,体重x公斤
print('我的名字是%s,今年%s岁了,体重%s公斤' % (name, age, weight))
# 语法 f'{表达式}' f-格式化字符串是Python3.6中新增的格式化⽅法
print(f'我的名字是{name},今年{age}岁了')
转义字符
\n :换⾏。
\t :制表符,⼀个tab键( 4个空格)的距离。
print结束符
print('内容', end="")
输入
特点
当程序执⾏到 input ,等待⽤户输⼊,输⼊完成之后才继续向下执⾏。
在Python中, input 接收⽤户输⼊后,⼀般存储到变量,⽅便使⽤。
在Python中, input 会把接收到的任意⽤户输⼊的数据都当做字符串处理。
# input("提示信息")
password = input('请输⼊您的密码: ')
print(f'您输⼊的密码是{password}')
# <class 'str'>
print(type(password))
转换数据类型
函数 | 说明 |
---|---|
int(x [,base ]) | 将x转换为⼀个整数 |
float(x ) | 将x转换为⼀个浮点数 |
complex(real [,imag ]) | 创建⼀个复数, real为实部, imag为虚部 |
str(x ) | 将对象 x 转换为字符串 |
repr(x ) | 将对象 x 转换为表达式字符串 |
eval(str ) | ⽤来计算在字符串中的有效Python表达式,并返回⼀个对象 |
tuple(s ) | 将序列 s 转换为⼀个元组 |
list(s ) | 将序列 s 转换为⼀个列表 |
chr(x ) | 将⼀个整数转换为⼀个Unicode字符 |
ord(x ) | 将⼀个字符转换为它的ASCII整数值 |
hex(x ) | 将⼀个整数转换为⼀个⼗六进制字符串 |
oct(x ) | 将⼀个整数转换为⼀个⼋进制字符串 |
bin(x ) | 将⼀个整数转换为⼀个⼆进制字符串 |
# 1. 接收⽤户输⼊
num = input('请输⼊您的幸运数字: ')
# 2. 打印结果
print(f"您的幸运数字是{num}")
# 3. 检测接收到的⽤户输⼊的数据类型 -- str类型
print(type(num))
# 4. 转换数据类型为整型 -- int类型
print(type(int(num)))
# 1. float() -- 转换成浮点型
num1 = 1
print(float(num1))
print(type(float(num1)))
# 2. str() -- 转换成字符串类型
num2 = 10
print(type(str(num2)))
# 3. tuple() -- 将⼀个序列转换成元组
list1 = [10, 20, 30]
print(tuple(list1))
print(type(tuple(list1)))
# 4. list() -- 将⼀个序列转换成列表
t1 = (100, 200, 300)
print(list(t1))
print(type(list(t1)))
# 5. eval() -- 将字符串中的数据转换成Python表达式原本类型
str1 = '10'
str2 = '[1, 2, 3]'
str3 = '(1000, 2000, 3000)'
print(type(eval(str1)))
print(type(eval(str2)))
print(type(eval(str3)))
pycharm交互式开发环境
左下角 python console按钮:可用于测试
运算符
算数运算符
+ | 加 | 1 + 1 输出结果为 2 |
---|---|---|
- | 减 | 1-1 输出结果为 0 |
* | 乘 | 2 * 2 输出结果为 4 |
/ | 除 | 10 / 2 输出结果为 5 |
// | 整除 | 9 // 4 输出结果为2 |
% | 取余 | 9 % 4 输出结果为 1 |
** | 指数 | 2 ** 4 输出结果为 16,即 2 * 2 * 2 * 2 |
() | ⼩括号 | ⼩括号⽤来提⾼运算优先级,即 (1 + 2) * 3 输出结果为 9 |
混合运算优先级顺序: () ⾼于 ** ⾼于 * / // % ⾼于 + -
赋值运算符
#单值赋值
num = 1
print(num)
#多值赋值
num1, float1, str1 = 10, 0.5, 'hello world'
print(num1)
print(float1)
print(str1)
#多值赋值相同变量
a = b = 1
print(a)
print(b)
复合赋值运算符
运算符 | 描述 | 实例 |
---|---|---|
+= | 加法赋值运算符 | 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 |
a = 10
a += 1 # a = a + 1
print(a)
b = 10
b -= 1
print(b)
c = 10
c += 1 + 2
# c = c+3
print(c)
d = 10
d *= 1 + 2
# d = d*3
print(d)
比较运算符
== | 判断相等。如果两个操作数的结果相等,则条件结 果为真(True),否则条件结果为假(False) | 如a=3,b=3,则( a == b) 为 True |
!= | 不等于 。如果两个操作数的结果不相等,则条件为 真(True),否则条件结果为假(False) | 如a=3,b=3,则( a == b) 为 True如 a=1,b=3,则(a != b) 为 True |
> | 运算符左侧操作数结果是否⼤于右侧操作数结果, 如果⼤于,则条件为真,否则为假 | 如a=7,b=3,则(a > b) 为 True |
< | 运算符左侧操作数结果是否⼩于右侧操作数结果, 如果⼩于,则条件为真,否则为假 | 如a=7,b=3,则(a < b) 为 False |
>= | 运算符左侧操作数结果是否⼤于等于右侧操作数结 果,如果⼤于,则条件为真,否则为假 | 如a=7,b=3,则(a < b) 为 False如 a=3,b=3,则(a >= b) 为 True |
<= | 运算符左侧操作数结果是否⼩于等于右侧操作数结 果,如果⼩于,则条件为真,否则为假 | 如a=3,b=3,则(a <= b) 为 True |
逻辑运算符
运 算 符 | 逻辑 表达 式 | 描述 | 实例 |
---|---|---|---|
and | x and y | 布尔"与":如果 x 为 False, x and y 返回 False,否则它返回 y 的值。 | True and False, 返回 False。 |
or | x or y | 布尔"或":如果 x 是 True,它返回 True,否则 它返回 y 的值。 | False or True, 返回 True。 |
not | not x | 布尔"⾮":如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 | not True 返回 False, not False 返回 True |
一般加上小括号来提高效率
数字之间的逻辑运算
a = 0
b = 1
c = 2
# and运算符,只要有⼀个值为0,则结果为0,否则结果为最后⼀个⾮0数字
print(a and b) # 0
print(b and a) # 0
print(a and c) # 0
print(c and a) # 0
print(b and c) # 2
print(c and b) # 1
# or运算符,只有所有值为0结果才为0,否则结果为第⼀个⾮0数字
print(a or b) # 1
print(a or c) # 2
print(b or c) # 1