当前位置: 首页 > article >正文

python---基础语法

标识符

标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python 中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。

以下划线开头的标识符有特殊含义。
单下划线开头的标识符,如:_xxx ,表示不能直接访问的类属性,需通过类提供的接口进行访问,不能用from xxx import * 导入;
双下划线开头的标识符,如:__ xx,表示私有成员;
双下划线开头和结尾的标识符,如:__ xx__,表示 Python 中内置标识,如:__init__() 表示类的构造函数。

关键字

breakforpassclassfromprint
continueglobalraisedefifreturn
delimporttryelifinwhile
elseiswithexceptlambdayield

缩进

Python 不使用 {} 来控制类、函数、逻辑判断等,而是使用缩进,缩进的空格可变。如下所示:

if True:
    print(True)
else:
    print(False)

上面表中是 Python 中的关键字(保留字),我们在自定义标识符时不能使用关键字。

注释

Python 中单行注释使用 #,多行注释使用三个单引号(‘’')或三个双引号(“”")。如下所示:

# 我是单行注释

'''
我是多行注释
我是多行注释
'''

"""
我是多行注释
我是多行注释
"""

特殊注释

  • #! usr/bin/python
    一种常见的Unix/Linux脚本文件开头,它告诉系统使用哪个Python解释器来执行该脚本。这里的#!称为“shebang”或“hash bang”,紧跟其后的usr/bin/python指定了Python解释器的位置(在这个例子中通常是系统的usr目录下的bin目录下)。当用户运行这个脚本时,操作系统会依据这个路径来启动Python,而不是直接打开文本编辑器。
  • #! usr/bin/env python
    常见的Linux或Unix系统命令行指令,它的作用是查找环境变量PATH指定目录下的Python解释器,并执行该Python程序。当你在终端输入这个命令时,它会定位到系统路径中最先找到的Python版本(通常是默认安装的),然后运行紧跟其后的Python脚本文件。

例如,如果你在命令行输入 usr/bin/env python myscript.py,系统会在usr/bin目录下寻找名为 python 的可执行文件,执行名为 myscript.py 的Python文件。这种方法可以避免因为用户系统里有多个Python版本导致的命令冲突问题。
【在Linux系统中应用,Windows系统中直接注释掉了】

  • #encoding=utf-8
    一种编码声明,通常出现在Python源代码的开头,用于指示文件的字符编码。在UTF-8编码模式下,Python程序能够正确处理包含中文、日文、韩文等非ASCII字符的文本内容。如果不写这一行,如果文件中的非英文字符可能会被错误地解析或显示为乱码。
    【python3默认支持中文,python2默认不支持中文】

引号

Python 可以使用引号(‘)、双引号(")、三引号(’‘’ 或 “”")来表示字符串,引号的开始与结束须类型相同,三引号可以由多行组成。如下所示:

id = '001'

name = "张三"

skill = '''
唱歌
跳舞'''

skill = """
唱歌
跳舞"""

变量

在 Python 中,当你给它赋值时就会创建变量:Python 没有用于声明变量的命令。变量在您第一次为其赋值时创建。变量引用着某个数值,并且可以改变这个引用。

定义变量

变量名 = 值【赋值语句,将右边的值的存储地址的唯一标识赋给变量名】
变量名1,变量名2 = 值1,值2
变量名1=变量名2 = 值

注意事项

一个变量只能引用一个数值;变量名使用之前一定要赋值

命名规范

  • 字母数字下划线
  • 见名知意
  • 驼峰标识
  • 非关键字
  • 区分大小写

数据类型

为什么要区分数据类型

  • 区分存储空间
  • 根据不同数据类型的特性,做不同的数据处理

具体数据类型

Numbers(数值类型)
int
long
float
conplex =>a+bj / complex(a,b)
Bool(布尔类型)
True
False
String(字符串)
‘abc’
“abc”
‘’‘字符串’‘’
“”" 字符串 “”"
List(列表)
[1,2,3]
Set(集合)
set([1,2])
Tuple(元组)
("王顺子“,18)
Dictory(字典)
{name:“王顺子”,age:18}
NoneType(空类型)
None

查看数据类型

print(type(变量名)

数据类型转换

方式

类型(需要转换的值)

转换图

函数说明
int(x,[,base])将x转化为一个整数
str(x)将x转换为一个字符串
float(x)将x转换为一个浮点数
repr(x)将x转换为一个表达式字符串
chr(x)将x转换为一个字符
Unichr(x)将x转换为一个unicode字符
ord(x)将x转换为一个整数值
hex(x)将x转换为一个十六进制字符串
oct(x)将x转换为一个八进制字符串
eval(str)计算字符串中的有效表达式,并返回对象
tuple(s)将序列s转换为一个元组
list(s)将序列s转换为一个列表

动态类型/静态类型

静态类型是指编译的时候确定的,后期无法修改
动态类型是指运行时进行判定的,可以动态修改

强类型/弱类型

强类型指类型比较强势,不轻易随着环境的变化而变化。eg:‘a’+1 直接报错
弱类型值类型敝教教柔弱,不同的环境下,很容易被改变 eg: ‘a’+1 ‘a1’

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

运算符

算数运算符

+:加法运算符
-:减法运算符
*:乘法运算符
**:幂运算符
/:除法运算符
//:整除运算符
%:求模运算符
=:赋值运算符

复合运算符

+=
-=
*=
%=
**=
//=
eg:a += 值 => a= a + 值

比较运算符

<>!=<>>=<===is
python2版本支持,等同于!=比较值比较唯一标识

逻辑运算符

notandor
not TrueTrue and TrueTrue or False

注意:

  • 非布尔类型的值,如果作为真假来判定,一般都是非零即真,非空即真;
  • 整个逻辑表达式的结果不一定都是True和False
print(bool(""))
print(bool("0"))

输入输出

输入

python2.x

  • raw_input
    • 格式:result = raw_input(“提示信息”)
    • 功能:会等待用户输入内容,知道用户按下enter键;会将用户输入的内容当作“字符串”进行处理
  • input
    • 格式:result = input(“提示信息”)
    • 功能:会等待用户输入内容,直到用户按下enter建;会将用户输入的内容当作“代码”进行处理

python3.x

  • input
    • 格式:result = input("提示信息“)
    • 功能:
      • 会等待用户输入内容,直到用户按下Enter;会将用户输入的内容当做"字符串",传递给接收的变量。
      • 如果说想要实现类似于Python2中的input功能,可以再使用eval()函数

输出

python2.x

print 语句 格式:print xxx

  • 输出值
    print 值
  • 输出变量
    print 变量名
  • 输出多个变量名
    print 变量名1, 变量名2
  • 格式化输出
    • %写法
      print “随意内容…”,占位符1," … ", 占位符2
      print "我的名字是”,name,",年龄是",age
      print “随意内容…占位符1, … , 占位符2, …”%(变量1, 变量2)
      print "我的名字是%s,我的年龄是%d"%(name,age)
    • format写法
      print “随意内容…{索引}, … , {索引}, …”.format(值1, 值2)
      print"我的名字是{0},年龄是{1}".format(name,age)
  • 输出到文件中
file = open("test.txt", "w")
print >> file, "i am sz"
  • 输出不自动换行
print a,
print b,
print c,
  • 输出的各个数据, 使用分隔符分割
print "-".join(["a","b","c"])

python3.x

print函数
print(values, sep, end, file, flush)

  • values
    需要输出的值。多个值, 使用 “,” 进行分割
  • sep
    分割符。多个值, 被输出出来之后, 值与值之间, 会添加指定的分隔符
  • end
    输出完毕之后, 以指定的字符, 结束默认是换行 ‘\n’
  • file
    表示输出的目标
    默认是标准的输出(控制台)。
file=sys.stdout

还可以是一个可写入的文件句柄

f = open("xxx", "w")
		file=f
  • 输出值
    print (值)
  • 输出变量
    print (变量名)
  • 输出多个变量名
    print (变量名1, 变量名2)
  • 格式化输出
    • %写法
      print “随意内容…占位符1, … , 占位符2, …”%(变量1, 变量2)
      print "我的名字是%s,我的年龄是%d"%(name,age)
    • format写法
      print “随意内容…{索引}, … , {索引}, …”.format(值1, 值2)
      print"我的名字是{0},年龄是{1}".format(name,age)
    • 补充: 占位格式符
      格式:%[(name)][flags][width][.precision]typecode
      使用中括号[]包含的部分, 代表可选
      • (name)
        用于选择指定的名称对应的值
        print("我的数学分数是%(ms)d,我的数学分数是%(es)d"%({"es":englishScore,"ms":mathScore}))
      • flags

        • 表示右对齐print("%d"%mathScore)
        • “-”
          表示左对齐。print("%-10d"%mathScore)
        • 空格
          ’ '为一个空格
          表示在正数的左侧填充一个空格,从而与负数对齐。print("% d"%mathScore)
        • 0
          0表示位首不够时使用0填充。print("%02d : %02d"%(min,sec))
      • width表示显示宽度
      • .precision表示小数点后精度
      • typeCode
        • 数值
          i/d #将整数、浮点数转换成 十 进制表示,并将其格式化到指定位置
          o #将整数转换成 八 进制表示,并将其格式化到指定位置
          x #将整数转换成十六进制表示,并将其格式化到指定位置
          e #将整数、浮点数转换成科学计数法,并将其格式化到指定位置(小写e)
          E #将整数、浮点数转换成科学计数法,并将其格式化到指定位置(大写E)
          f #将整数、浮点数转换成浮点数表示,并将其格式化到指定位置(默认保留小数点后6位)
          F #同上
          g #自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是e;)
          G #自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是E;)
        • 字符串
          s #获取传入对象的__str__方法的返回值,并将其格式化到指定位置print("%s"%"abc")
          r #获取传入对象的__repr__方法的返回值,并将其格式化到指定位置
          c #整数:将数字转换成其unicode对应的值,10进制范围为 0 <= i <= 1114111(py27则只支持0-255);字符:将字符添加到指定位置`print(“%c” % 19997)
        • 特殊
          % #当字符串中存在格式化标志时,需要用 %%表示一个百分号print("%d%%" % score)
          注:Python中百分号格式化是不存在自动将整数转换成二进制表示的方式%b
  • 输出到文件中
f = open("test.txt", "w")
print("i am sz", file=f)
# 标准输出
print("xxxxx",file=sys.stdout)
  • 输出不自动换行
print("hello", "i am sz", end="")
  • 输出的各个数据, 使用分隔符分割
print("i", "am", "sz", sep="---")

项目小结

# Python版本的问题
# 思路, 语法 -> 工具
# Python3.x

# 使用注释, 理清楚, 具体的实现步骤
# 代码填充

# 输入
# 	身高
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 = 体重(kg) / (身高 * 身高)(米)
# 体脂率 = 1.2 * BMI + 0.23 * 年龄 - 5.4 - 10.8*性别(
BMI = personWeight / (personHeight * personHeight)
TZL = 1.2 * BMI + 0.23 * personAge - 5.4 - 18.8 * personSex

# 	判定体脂率, 是否在正常的标准范围之内
# 正常成年人的体脂率分别是男性15%~18%和女性25%~28%

# TZL  MIN  MAX
# 0.10 1 0
minNum = 0.15 + 0.10 * (1 - personSex)
maxNum = 0.18 + 0.10 * (1 - personSex)

result = minNum < TZL < maxNum

# 输出
# 	告诉用户, 是否正常
print("你的体脂率, 是%f" % TZL)
print("你的体脂率, 是否符合标准", result)

http://www.kler.cn/a/393486.html

相关文章:

  • GWAS分析先做后学
  • 大数据之国产数据库_OceanBase数据库002_在centos7.9上_安装部署OceanBase001_踩坑指南_亲测可用
  • 【OpenDRIVE_Python】使用python脚本更新OpenDRIVE数据中路口Junction名称
  • GPS北斗卫星授时服务器功能是什么?应用是什么?
  • 探索ai一键生成PPT的未来
  • 基于单片机的智能灯光控制系统
  • 【HarmonyOS】Install Failed: error: failed to install bundle.code:9568289
  • CCF认证-202403-04 | 十滴水
  • 人工智能(AI)和机器学习(ML)技术学习流程
  • python 同时控制多部手机
  • 华纳云:数据库一般购买什么服务器好?有哪些建议
  • Flink_DataStreamAPI_输出算子Sink
  • 现代无线通信接收机架构:超外差、零中频与低中频的比较分析
  • 人机界面与人们常说的“触摸屏”有什么区别?这下终于清楚了
  • Java反序列化之CommonsCollections2链的学习
  • golang go语言 组建微服务架构详解 - 代码基于开源框架grpc+nacos服务管理配置平台
  • 详解基于C#开发Windows API的SendMessage方法的鼠标键盘消息发送
  • 时序预测 | 改进图卷积+informer时间序列预测,pytorch架构
  • FPGA实现PCIE3.0视频采集转SDI输出,基于XDMA+GS2971架构,提供工程源码和技术支持
  • ASR+LLM+TTS在新能源汽车中的实战
  • 安装luasocket模块时提示“sudo: luarocks:找不到命令“问题,该如何解决?
  • SDL读取PCM音频
  • Docker在微服务架构中的最佳实践
  • 云速搭助力用友 BIP 平台快速接入阿里云产品
  • 计算机网络(8)数据链路层之子层
  • 沈阳乐晟睿浩科技有限公司引领新潮流