id(num) # 查询num的内存地址
变量的类型判断
type(变量名)
输入输出
message = input('请输入你要发送的信息:') # 输入,在这个方法中写入的字符串会打印在控制台中 一般写入的信息都是软件的提示信息,
在控制台中输入的数据会被input方法获取到,把获取到的值的内存地址赋值给变量。
注意:imput方法所接收的数据的类型会变成字符串。 可以通过类型强转改变数据类型。
print(message)
print('打印的内容', end='') # end默认为'\n'
查看函数的底层代码
def test():
pass
from dis import dis
print(dis(test)) # 打印出来的底层代码,接近于汇编,所以Python具有一定的反逆向能力
占位符
name = input('请输入你的姓名')
print('大家好,我叫%s' % name)
不确定的这个字符串进行占位,当前这个字符串的指定位置有值
等到我们真正打印这个字符串的时候,占位的位置把当前这个已经接到值的这个变量放到字符串的占位的位置上
字符串%s,整型%d,浮点%f (保留小数点2位%.2f)
f表达式
由于可能不知道需要占位的变量数据类型,所以引入了f表达式进行占位,用于格式化字符串
name = '安娜'
age = 18
print(f'你好,我叫{name},今年{age - 1}岁')
format方法(不推荐)
print('你好,我叫{},年龄为:{}'.format('安娜', 20))
看源码的方式:
将鼠标放置函数上,按住CTR键,点击左键
关键字不能作为变量乱使用
1. 字段类型
# 整型 数字类型,不带小数的数字被称之为整型 int %d
num = 1 # Python3.8后可以写成num: int = 1
# 字符串 汉字 单词 字母 特殊符号 str %s
str_message = '字符串' 可以写成 str_message: str = '字符串'
# 字节 一般端对端数据传输的时候会用到字节bytes,如:
网络编程
数据加密
后端开发
byte_data = b'abc'
一般情况下用不到
# 浮点类型 float %.2f
pi =3.14 可以写成 pi: float = 3.14
# 布尔类型 0 1 判断
yes = True
no = False
如:
have_money = True
have_friends = False
if have_money == True: # 此处有黄色波浪线,可以优化为if have_money: 即不写默认为True
print('你真有钱...')
else:
print('你是真没钱...')
2. 数据结构
# 列表 list
int_list = [1, 2, 3, 4, 5] # 可以写成 a: list = []
# 元组 tuple
int_tuple = (1, 2, 3, 4, 5) # 可以写成 a: tuple = ()
# 集合 set
int_set = {1, 2, 3, 4, 5} # 可以写成 a: set = {}
# 字典 dict
str_data = {'name': 'Anna', 'age': 18} # a: dict = {}
3. Python变量的命名规则与方式
驼峰式
很少用,尤其是在变量命名时基本不用驼峰命名法
小驼峰式命名法(lower camel case):第一个单词以小写字母开始;第二个单词的首字母大写,如myName,aDog
应用:函数
大驼峰式命名法(upper camel case):每一个单词的首字母都采用大写字母,例如:FirstNmae,LastName
应用:class(类)
下划线命名法:用_来连接所有的单词(英文单词加下划线),比如send_msg,big_data
应用:变量
尽量取一个有意义的名字,尽量做到看一眼就知道是什么意思(提高代码可读性),比如,名字就定义为name,学生就用student
不能用关键字进行命名
查询python的关键字
import keyword
keyword.kwlist
4. 运算符
计算运算符
加(+),减(-),乘(*),除(/),取余(%),
取整除(//)返回商的整数部分9//2输出结果为4, 9.0//2.0输出结果为4.0
取指数(**) 如2**3 为2的3次方,结果8
混合运算时,优先级**高于*,/,%,//高于+,-,为了避免歧义,建议使用()来处理运算符优先级。
不同类型的数字在进行混合运算时,整数将会转换成浮点数进行计算
复合赋值运算符
+=,-=等。 c += a 相当于c = c + a
比较运算符
比较运算符比较出来一个结果,一定是True或者False
== 检查两个操作数的值是否相等,如果是则条件变为真,如a=3,b=3,则a == b为True,否则为False
!= 不等于为真; > 大于为真; < 小于为真; >= ; <=
逻辑运算符
得出来的结果也是布尔值,一定是Ture或者False
and 并且 必须保证多个条件同时成立的情况下才会返回True
or 或者 如果多个条件,其中有一个条件成立则返回True
not 取反 条件成立,返回False,条件不成立返回True
逻辑运算符中的特殊场景
在编程语言中0 1 空字符串 空列表 None...可以返回布尔值
返回False的特殊值:0,None,[],(),{},''
print(100 and 200) 100等效True, 所以继续向后判断,200等效True,最后返回结果为等效True值的数字200
print('' and 200) ''空字符等效False,不再向后执行,所以最后返回等效False的''
print(0 or 'aaa' or 200) 0等效False,or继续向后执行,'aaa'等效True,所以直接返回'aaa'
print(100 or 100>50) 100>0,所以不再向后执行,直接返回数字100
print(0 or 100>50) 0为False,所以继续向后验证,100>50返回的结果为True,所以最终返回的结果为True
print(0 or 100<50 or None) 0等效False,100<50结果为False,None等效False,最后返回None
总结:
and,多个条件只要有一个的条件等效于False,则直接返回等效于False的那个计算结果,
如果都等效于True,返回最后一个and后的结果,结果为数字返回数字,结果为True返回True,为非空字典返回字典
or,多个条件以第一个>0或者判定为True的值作为返回结果。数字返回数字,布尔值返回布尔值,
如果判定至最后,则以最后一步的结果作为返回结果。
5.if判定语句
if 要判定的条件: # 代码块起始位置
条件成立时,要做的事情
elif 要判定的条件2:
条件2成立时,要做的事情
elif ......
else:
都不成立时,要做的事情
if可以单独使用,可以不加elif,else
elif不可以脱离if,也不能脱离else
else不可以脱离if,可以脱离elif
6.循环语句
while循环
while 循环条件: # 条件成立,运行下面的代码块,否则不运行
条件成立时,执行的事件1
条件成立时,执行的事件2
......
如示例:
i = 1
while i < 5:
print(f'当前是第{i}次循环') # f表达式
i += 1
# f表达式,用于格式化字符串
# 九九乘法表
i = 1
while i <= 9:
j = 1
while j <= i:
print(f'{j}*{i}={j * i} ', end="")
j += 1
print('\n')
i += 1
在循环中,也可以使用else。如果循环条件不成立,则运行else中的代码块
while 循环条件:
循环条件成立时执行的代码块
else:
循环条件不成立时执行的代码块
for循环
for 临时变量 in 列表或者字符串等可迭代对象:
循环满足条件时执行的代码
在for循环中,如果是对列表(字符串等)重复取值,列表取值到最后一位没有值的情况下会运行else
class_name = ['数学', '语文', '英语', '物理']
for class in class_name:
print(class)
for class in class_name:
print(class)
else:
print('当前列表取完了')
range内置函数的简单使用
int_list = [x for x in range(1, 5)]
print(int_list) # 结果[1, 2, 3, 4],从开始位1到5结束位,不包含5
# 实现1-100的累加
sum_res = 0
for i in range(1, 101):
sum_res += i
print(sum_res) # 5050
break,continue,exit()区别
break:退出当前所在循环,就算条件成立,也会断开循环
注:(1)嵌套循环中,只退出一层循环(当前break所在的循环)
(2)如果使用break强制停止了循环,则不会执行else。continue会继续执行else,只是跳过本次同代码块continue后的内容
continue:跳过continue后的内容,继续当前循环
exit():退出当前程序
![]()