python注释

注释作用:
帮助我们自己理清楚代码逻辑
与别人合作开发,添加注释,可以减少沟通成本
开发模块的时候添加注释可以减少他人使用成本
可以临时注释一段代码,方便调试,定位出错的代码行
注释的分类:
#是单行注释
‘’‘xxx’’'是多行注释
“”“xxx”""是多行注释

python的中文乱码

文本<—->存储器中
计算机的存储器:一个比特是计算机最小表示信息,只存储0/1
一个字节是计算机基本的存储单元,即使只是存储一个1值必须最小要占用一个字节。
字符—>存储器(编码)存储器—>字符(解码)
字符—>数字—>存储器
字符编码(ASCII编码/其他)
1、按照这样的规范把字符转换成数字?
2、按照怎样的方式存储数字?(用多少个字节)

  • 当字符编码对应的数字不同时,解码使用不同字符编码规范进行解码的时候会出现乱码
  • 当字符编码对应的数字相同时,解码使用不同存储数字方式,会产生错位,进行解码的时候也会出现乱码
    常见的字符编码
    -ASCII/ANSI:
    ASCII可以简单理解为用于表述英文文字的编码。ANSI是ASCII的扩展,除英文外还可以表示拉丁文。
    -GB2312/GBK/GB18030:
    GB既国标,是中国自己的编码方案,目的当然是为了描述汉字(下文我们统称 其为GB系列)。其中,GB2312是对ASCII的中文扩展,GBK和GB18030的涵盖了GB2312的所有内容,同时又增加了近20000个新的汉字(包括繁体字)和符号。
  • Unicode:
    中国有自己的编码标准,其他国家也有自己的一套规范,而且相互之间互不支持,为了解决这一现象,国际标谁化组织提出了统一的标准编码准则Unicode ,其中python3是Unicode 。每个字符都有对应的唯一字符码,但是针对每个字符码使用几个字节存储的问题,又存在几个不同的解决方案,utf-8,utf-16,utf-32等。
    使用utf-8编码的数据只能通过utf-8进行解码,使用GB编码的数据也只能使用GB来解码,既解码与编码的规范要一致,否则就会出错。
    Python3中的编码与解码
    Python3中有两种数据类型:str和bytes。str类型存储unicode数据,用于向人展示数据,既我们所说的明文。bytes类型用于存储字节数据,用于计算机存储和传输。明文(str)和字节(bytes)数据之间的转换关系就是编码和解码,从str到bytes叫编码,用encode命令,从bytes到str叫解码,用decode命令。需要注意的是,str数据无法进一步decode,bytes数据也无法进一步encode。

python变量

什么是变量
变量是一个存储数据得容器
变量特性:引用者某个具体的数值 可以改变这个引用
定义变量

# 变量赋值三种方式
# 方式一 变量名 = 值
a = 1 #在内存里面分配一块空间存储1,再把空间的唯一标识给变量a
print(a)

# 方式一 变量名1,变量名2 = 值1,值2
a, b = 1, 2
print(a, b)

# 方式一 变量名1 = 变量名2 = 值
a = b = 8
print(a, b)

为什么会产生变量

  • 变量产生,便于代码维护,节省空间方便维护
# ctrl+D快速复制
print(8+1)
print(8+2)
print(8+3)
print(8+4)
print(8+5)

#  ctrl+R快速替换 ctrl+/ 单行注释
num = 8  # 变量产生,便于代码维护,节省空间 8—>10
print(num+1)
print(num+2)
print(num+3)
print(num+4)
print(num+5)
  • 变量产生,节省空间(磁盘+内存)
# 变量产生,节省空间(磁盘+内存)
# 打印8遍“烦烦烦,哈哈哈 1”
name ="烦烦烦,哈哈哈" # 只有一份实际存储 "烦烦烦,哈哈哈"
print(name+"1")
print(name+"2")
print(name+"3")
print(name+"4")
print(name+"5")
print(name+"6")
print(name+"7")
print(name+"8")

变量注意事项
一个变量只能引用一个数值
命名规范:字母数字下划线、见名知意、驼峰标识、非关键字、区分大小写
变量名使用之前一定要赋值

python数据类型-类型转换

什么是数据类型
对程序处理的数据进行相关分类
为什么区分数据类型

  • 区分存储空间,根据不同的数据类型,分配不同的存储空间
  • 根据不同的数据类型,做出不同的数据处理 6+6 vs “6”+“6”

数据类型
常用数据类型:

  • Number(数值类型)int long float complex
  • Bool( ture false)
    -String(‘abc’ “abc” ‘’‘abc’’’ “”“abc”"")
  • List Set Tuple Dictory NoneType
print(type(6))  # 查看数据类型 <class 'int'>
print(type("54"))  # 查看数据类型 <class 'str'>

数据类型转换

  • 数据类型转换,不同数据类型之间不能计算,具体转换可以查看转换图
na = "6"
# print(4 + na) error
print(4 + int(na))
print(str(4) + na)

score = input("请输入一个数字")
print(type(score))  # score是str类型,不能与int相加
print(int(score) + 6)

不是所有字符串都可以成功转换int
li = "123a"  # 123a会报错
print(int(li))

转换图

python从键盘输入十个数 python在键盘上输入10个整数_python从键盘输入十个数


面试补充

静态类型:类型是编译的时候确定的,后期无法修改

动态类型:类型是运行的时候进行判定的,可以动态修改

强类型:类型比较强势,不轻易随着环境变化而变化

“a”+1 (不会自动改变)

弱类型:类型比较弱势,不同的环境下面,很容易被改变

python是属于强类型动态类型的语言

python运算符

算术运算符

# 算术运算符

# 加法运算符会重载 +
print(1 + 2)
print("1" + "2")
print([1, 2] + [3, 4]) # [1,2,3,4]

# 减法运算符 -
print(1 - 2)

# 乘法运算符 *
print(1 * 2)

# 幂运算符 **
print(3 ** 5) # 3的5次方 243

# 除法运算符,除数不能是0 /
print(5 / 2) # 2.5
# print(5 / 0)

# 整除运算符  //
print(5 // 2)  # 结果2,取整数

# 求模运算,求余数  %
print(5 % 2)  # 余数是1

# =
# 赋值运算符

# 注意
# 优先级问题
# ()使用
result = (1 + 2) * 3 / 4

# 整除和求余的应用场景
# 计算东西所在的行和列
num = 6
row = num // 4
col = num % 4

复合运算符

# 复合运算符 **=  //= %=
num += 5
num *= 20

比较运算

# 比较运算符,bool
print(10 > 2)
print(10 != 2)  # <> python2.x支持,相当于!=,以后统一使用!=为不等于
print(10 == 2)  # =赋值 vs ==等于比较运算符

# is比对唯一标识
num = 10  # 10是变量的值,存在内存中某一位置,会把唯一标识给num
print(id(num))  # num唯一标识,根据这个去内存找到内容10,然后使用10
a = 10
b = 10
print(id(a), id(b)) # 相同
print(a is b) # id一样,True

a = [1]
b = [1]
print(a == b) # True,比对值
print(id(a), id(b))
print(a is b)  # False,唯一标识不同

# 链式比较运算符
num = 10
print(5 < num < 20)

逻辑运算符
逻辑运算符 not and or

# 逻辑运算符 not and or
b = True
print(not b) # False

# print(True and True)  # 一假全假
print(0 and True)  # 打印0,已经假,打印0了
print(1 and 3)  # 打印3

# print(True or False)  # 非0就是真和非空即真
# print(False or False)
print(1 or False)  # 打印1
print(0 or False or 9)  # 打印9
print(bool("0")) # 非空即真True
print("0" or False) # 0 
print("" or False) # False

python输入输出

python从键盘输入十个数 python在键盘上输入10个整数_python从键盘输入十个数_02

import sys
# python3里面的input相当于python2.x里面的raw_input
# 函数
content = input("请输入内容")
print(content)
print(type(content))  # 未加工输入,全是字符串类型 1+1是字符串

# 如果想要实现类似于python2中的input(用户输入当作代码处理 1+1 s是int2)功能,可以使用eval()函数
# eval()会将用户的输入内容当作代码进行处理
content = input("请输入内容")
result = eval(content)
print(result)
print(type(result))

# 输出一个值
print(123)

# 输出一个变量
num = 55
print(num)

# 输出多个个变量
num2 = 55
print(num,num2)

# 格式化输入输出
name = "yangliu"
age = 22
print("我的名字是%s,年龄是%d" % (name, age))
print("我的名字是{0},年龄是{1}".format(name, age))

# 输出到文件中
f = open("test.txt", "w")
print("xxxxxxxx", file=f)  # 写入到文件
print("xxxxxxxx", file=sys.stdout)  # 标准输入在控制台

# 输出不自动换行
print("abc", end="#")  # end输出以指定的字符结束,默认是换行 abc#
print("abc", end="\n")  # 换行
print("abc", end="")  # 不换行

# 输出各个数据,使用分隔符
print("1", "2", "3", sep="=!=")  # sep是分隔符,值与值之间可以添加指定的分隔符 1=!=2=!=3

# 格式化输出:占位格式符
# %[(name)][(flags)][(width)][.precision]typecode
# []:可以省略
# (name)表示根据制定名称(key),查找对应的值,格式化到字符串中
mathScore = 59
englishScore = 58
print("我的数学分数是:%d,我的英文分数是:%d"%(mathScore, englishScore))
print("我的数学分数是:%(ms)d,我的英文分数是:%(es)d"%({"ms":mathScore, "es":englishScore}))  # 字典

print("%d", mathScore)

# width表示宽度
print("%4d" % mathScore)
# flag对齐 不写右对齐
# -左对齐
print("%-4d" % mathScore)
# 空格,用空格填充,表示在正数左侧填充一个空格,从而与负数对齐
print("% d" % mathScore)  # 加两个空格也只会空一个空格
# 0表示用0来填充,不够width才会填充
min = 5
sec = 8
# 05:08
print("%02d:%02d" % (min, sec))

# precision表示小数点后的精度
s = 58.9
print("%f" % s)  # 默认小数的精度为六位
print("%.3f" % s)  # 三位小数

# typecode必须填写 %d 表示十进制 %o把整数转换成八进制 %E科学计数法 %cUnicode %g科学计数法

print("%d%%" % s)  # %表示转义 58.9%

体脂率计算

# 采集一个人的身高体重年龄性别,告诉他体脂率是否在正常范围内
# 功能分析:输入:身高体重年龄性别 处理数据:计算体脂率/判断体脂率是否在正常范围内 输出:是否正常
# 体脂率公式:BMI=kg/(身高*身高)米  体脂率=1.2*BMI+0.23*年龄-5.4-18.8*性别(男1女0) 男性15%-18% 女性25%-28%

# 输入:身高体重年龄性别
personHeight = input("请输入身高(m):")
personHeight = float(personHeight)
personWeight = input("请输入体重(kg):")
personWeight = float(personWeight)
personAge = input("请输入年龄:")
personAge = int(personAge)
personSex = input("请输入性别(男:1 女: 0):")
personSex = int(personSex)
# 处理数据:计算体脂率/判断体脂率是否在正常范围内
BMI = personWeight / (personHeight * personHeight)
TZL = 1.2 * BMI + 0.23 * personAge - 5.4 - 18.8 * personSex

# 0.10  1  0
minNum = 0.15 + 0.10 * (1-personSex)  # 最低标准
maxNum = 0.18 + 0.10 * (1-personSex)
result = minNum < TZL < maxNum

# 输出
print("你的体脂率是:", TZL)
print("你的体脂率是否符合标准", result)