正数的反码是其本身,负数的反码是在原码的基础上,符号位不变,其余个位取反
+1 = [00000001] -1 = [11111110]正数的补码是其本身,负数的补码是在其原码的基础上,符号位不变,其余个位取反,再加1
+1 = [00000001] -1 = [11111111]python # 号后内容为注释内容 快捷键Ctrl + /
# 我是一行注释python 用三个单引号或者双引号表示多行注释
''' 注释第一行 注释第二行 ''' """ 注释第一行 注释第二行 """Python中定义各种名字的统一规范:
由数字字母下划线组成不能数字开头不能使用内置关键字严格区分大小写见名知义
大驼峰:每个单词首字母都大写,如MyName小驼峰:第二个(含)以后的首字母大写,如myName下划线:如my_name变量名自定义要满足标识符命名规范 变量就是数据内存地址的名字 变量名=值
name = "Tom" print(name) # "Tom"借助第三个变量
a = 1 b = 2 # 借助第三个变量 c = a a = b b = c a # 2 b # 1python方法
a = 1 b = 2 a,b = b,a a # 2 b # 1字符串是不可变类型,需要用引号,是序列可以遍历 程序中使用str unicode类型,保存文件或网络传输是用bytes类型
print(type("hello world!")) # <class 'str'> python3字符串str默认是Unicode类型 print(type("abc".encode("utf-8"))) # <class 'bytes'> unicode 转 bytes print(type("abc".encode("utf-8").decode("utf-8"))) # <class 'str'> bytes 转 unicode[数据1,数据2,…] 列表是可变类型,是序列可以遍历
print(type([1,2,3])) # <class 'list'>(数据1,数据2,…)元组数据无法修改,是序列可以遍历
print(type((1,2,3))) # <class 'tuple'>set {} 或者set() 可变无序不重复,不可以遍历
print(type(set())) # <class 'set'> print(type({1,2})) # <class 'set'>frozenset 不可变无序不重复,不可以遍历
print(type(frozenset())) # <class 'frozenset'>{key:value,…} 键值对,可变,可以遍历
print(type({1:2})) # <class 'dict'>\ 表示转义字符
\\ print("\\") # \ \n print("a\nb") # a换行b \t print("a\tb") # a br""内部字符串默认不转义
print(r"a\nb") # a\nbinput(“提示文字”) 接收用户输入
password = input("请输入密码:") # 请输入密码:abc123 print(password) # 'abc123' print(type(password)) # <class 'str'>print(“内容”) 打印输出
print("hello world") # hello world # print() 函数默认结束符end="\n",用户可自定义 print("hello world",end="*") # hello world*>>>格式化输出 %s 格式化输出字符,%5s表示字符串位数,不足以空格补全,超出原样输出,也可以格式化整数和浮点数
name,age,weight = "pyhacker",18,10.8 print("姓名%s" %name) # 姓名pyhacker print("姓名s" %name) # 姓名 pyhacker print("姓名%5s" %name) # 姓名pyhacker print("姓名%s,年龄%s,体重%s" %(name,age,weight)) # 姓名pyhacker,年龄18,体重10.8%d 格式化输出整数,%5表示整数位数,不足以空格补全,超出原样输出,表示以0补全
print("年龄%d" %age) # 年龄18 print("年龄]" %age) # 年龄 18 print("年龄d" %age) # 年龄00018%f 格式化输出浮点数,.2f表示小数显示位
print("体重%f" %weight) # 体重10.800000 print("体重%.2f" %weight) # 体重10.80f"" f"内容{表达式}" 是python3.6新增格式化方法,简单易读
print(f"姓名{name}年龄{age}体重{weight}") # 姓名pyhacker年龄18体重10.8查看内置函数或方法
dir(__builtins__)查看函数使用方法
help(type)range(start,end,step) 生成从start到end的数字,步长为step,供for循环使用 range()生成的序列不包含end数字
range(3) # range(0, 3) list(range(3)) # [0, 1, 2] list(range(1,6,2)) # [1, 3, 5]enumerate(可遍历对象,start= 0) start 参数用来设置遍历数据的下标起始值,默认为0 函数用于将一个可遍历的数据对象(字符串、列表、元组、集合)组合为一个索引序列,同时列出数据和数据下标,一般用在for循环中 返回结果是元组,第一个数据是下标, 第二个数据值
for i in enumerate("abc"): print(i,end=" ") # (0, 'a') (1, 'b') (2, 'c') for i in enumerate(["a","b","c"]): print(i,end=" ") # (0, 'a') (1, 'b') (2, 'c') for i in enumerate(("a","b","c")): print(i,end=" ") # (0, 'a') (1, 'b') (2, 'c') for i in enumerate({"a","b","c"}): print(i,end=" ") # (0, 'a') (1, 'b') (2, 'c')查看数据类型
type("abc") # <class 'str'>判断数据类型
isinstance("abc",str) # True isinstance(1,(int,float,complex)) # True查看数据内存地址
a = 100 id(a) # 4438370320判断是否可迭代
from collections import Iterable isinstance("abc",Iterable) # True检测编码类型,需要检测的语言必须是bytes类型
import chardet chardet.detect("北京".encode("utf-8")) # {'encoding': 'utf-8', 'confidence': 0.7525, 'language': ''}判断布尔值
bool("") # False bool(1) # True将对象转换为字符串 repr()将函数对象转换为供解释器读取的形式
repr("abc") # "'abc'"将字符串转换成对象 eval() 用来执行一个字符串表达式,并返回表达式的值
eval("1 + 2") # 3exec()用来动态执行存储在字符串或文件中的python语句,无返回值
exec("print('hello world')") # hello world混合运算符优先级:()高于**高于*、/、//、%高于+、-