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

Python+大模型 day02

eval()

去除字符串左右两侧的引号,内部是什么就运行什么

str1 = '12'   
print(eval(str1))             12
print(type(eval(str1)))       <class 'int'>str2 = '12.6'
print(eval(str2))             12.6
print(type(eval(str2)))       <class 'float'>str3 = 'False'
print(eval(str3))             False
print(type(eval(str3)))       <class 'bool'># 解释: 将下方字符串左右两侧的引号去掉,就是打印hello world的代码,所以使用eval可以打印hello world
eval("print('hello world')")  hello world# NameError: name 'aaa' is not defined
# 将str4两侧的引号去掉,aaa就是一个变量名,但是变量名没有被定义,所以会报错
# 注意:变量必须先定义,再调用
'''
str4 = 'aaa'
print(eval(str4))
print(type(eval(str4)))
'''

运算符

算数运算符

/:求商,0不能作为分母存在

//:整除 %:取余

**:幂次运算

先乘除,后加减,如果算数运算符优先级相同,从左至右依次运算

整除和取余运算优先级和乘除相同

幂次运算优先级最高

()改变运算符的优先级

赋值运算符=

将右侧的数据赋值给左侧的变量

# 可以一次给多个变量赋相同的值
a = b = c = 1
print(a, b, c)# 可以使用逗号分隔,一次性给多个变量赋值,但等号两侧的数量要保持一致
num1, num2 = 1, 2
print(num1, num2)
#变量必须先定义后调用,否则报NameError的错误
复合赋值运算符

相当于将算术运算符和赋值运算符进行结合,先运算后赋值

等号左侧必须是已经被定义的变量,右侧是已经被定义的变量或值

比较运算符

比较运算的结果是bool类型

注意

判断大于小于时,需要符号左右两侧的数据类型相同(数值型之间可以随意比较,如int float bool )

# 判断相等或不等时,可以与其他数据类型进行比较
# 但是数据类型不相同,一般值也不相同
print(1 == '1')         #False
print(1 == True)        #True
print(1 == 1.0)         #True

字符串数据之间可以进行比较运算符的计算

一般不会使用字符串进行数字逻辑的比较,而一般比较字符串是为了排序

字符串之间比较大小的规则

1.是按照字符的编码序号进行比较的

ascii码:美国信息交换标准码 一共128位,代表128个常用字符,可以满足美国当时正常通讯要求

GBK:国际拓展码 内部包含所有的汉字,可以将二进制转码为中文字符,兼容ascii码

unicode:万国码,包含了全世界大部分国家的语言、符号、表情等,包含unicode8 16 32等,数字越大,包含的字符数量越多,兼容ascii

# 数字<大写字母<小写字母<汉字
print('A' < 'a')   # True
print('a' < '静')  # True# 含有多个字符的字符串,则从左到右依次对比,直到比出结果为止,有值的大于没值的
print('19' > '5')     # False
print('51' < '53')    # True
print('998' < '99a')  # True
print('123' > ' 12')  # True
逻辑运算符

and:两边都为真,结果才是真

or:两边都为假,结果才是假

not:真变假,假变真;真假互换

Python中的三大流程语句
顺序语句

Python代码默认都是顺序执行的,代码永远都是从上到下依次执行的

分支语句

使用if进行构造,在同一条件下,只能有一个分支中的代码被执行

# Python中没有大括号控制分支范围,那么if控制的范围要使用缩进来进行标明
# 在if后的条件末尾务必加上   : ,下一行内容务必缩进(建议缩进一个tab键的位置或者四个空格)
# if控制的所有代码务必对齐
# 取消缩进后,就不在if控制的范围之内了"""
分支语句格式:
if 条件1:条件1成立时执行的代码块
elif 条件2:条件2成立时执行的代码
elif 条件3:条件3成立时执行的代码
else:#else是否添加取决于我们上述条件是否将所有的情况覆盖完全,else是可选的条件不成立时执行的代码块首先判断条件是否成立,如果成立则执行if控制的代码块,如果不成立则执行else控制的代码块
条件判断语句就是一个结果是bool类型,或者是可以转换为bool类型的数据
"""age = int(input("请输入小明的年龄:"))
if age >= 22:print("满足转正的部分条件啦!!!")
else:print("再沉淀沉淀吧")
print("不敢怎样,明天都要继续")
print('每天都要开心哈')
debug调试

也叫做调试模式或者纠错模式

在debug模式下,代码会暂停到断点行执行之前的状态

在此状态下,我们可以查看代码的执行流程和变量值

分支语句的嵌套

只有外层条件成立时,才能执行内层的分支语句,所以内层分支语句是否执行由外层条件决定

循环语句

使用for或者while构造,条件满足时可以重复执行相同或相似的代码,条件不成立时跳出循环,继续向下执行

import random
#randint函数是一个左闭右闭的区间,下方随机整数范围为1,2,3
print(random.randint(1,3))
while循环格式
"""
while 判断条件:条件成立时,执行的代码1条件成立时,执行的代码2注意:不在while控制的缩进范围内的代码不参与循环
"""i = 0
while i < 100:print("菜就多练")i += 1
print("估计练的差不多得了")
# 循环可以提高开发效率,但是不一定会提高执行效率

循环不一定需要循环变量,必要条件:while关键字,循环条件,循环体

循环变量没有时,循环条件一直成立,循环正常执行。这种循环条件恒成立的情况,叫做死循环,也叫做无限循环。

#死循环是程序的一种正常执行状态,不一定是bug
while True:print("666")

可以使用一些非循环变量作为结束条件,比如:时间

print():表示打印一个换行符

print("\n"):实际上打印了两个,print函数本来就有end='\n'

for循环格式

for循环也是循环结构中的一种,一般和容器类型搭配使用

规则:从容器中依次获取每一个元素赋值给临时变量,当数据取完则循环终止

"""
for 临时变量 in 容器类型数据:循环体优势:
1.语法简洁,且不易出错(因为不需要循环变量来控制循环跳出条件)
2.从容器中遍历数据不需要构造数据,可以直接取用
"""str1 = "itheima"
for i in str1:print(i, end='')
# 容器内有多少个元素,for循环就遍历多少次
for循环搭配range函数使用

range函数就是一个范围函数,内部是根据特定规则生成的整数序列

使用格式:range(起始位置,终止位置,步长),这个函数是左[ ,右) 的

步长可以省略,省略后默认步长为1

起始位置是可以省略的,例如range(10)默认从0开始

步长可以是任意整数,所有参数只能使用整形数据

break:用于终止循环,即执行了break之后,循环就不再继续执行,直接执行下一句代码

break和continue只能控制当前所在循环的循环方式,只能使用在循环体中,否则报错

如果使用循环变量来控制循环跳出,则在执行continue之前,必须进行改变

break和continue只能控制当前所在循环体的循环方式

逻辑

while循环根据循环条件判断循环是否结束,一般用循环变量来控制循环结束条件

for循环是根据容器内的元素个数决定循环是否结束,不需要循环变量

场景

while循环一般构造有特定结束条件的循环或者死循环

for循环一般只对于容器类型遍历使用

在开发中一般情况下for和while可以相互转换,但是for循环使用场景比while要广一些

循环结构中的else
"""
for 临时变量 in 容器类型:循环体
else:代码块
当容器类型中的元素遍历完后,执行else中的代码
"""
"""
while 条件:循环体
else:代码块
当循环条件不满足时,执行else中的代码
"""
总结

当循环正常结束后,就要执行else中的代码

注意

当循环异常终止时,else中的代码将不会执行

while循环不是因为条件不成立而终止的循环就是异常终止,比如:break

for循环不是因为容器中的元素遍历完而终止的循环就是异常终止,比如:break

break会导致程序异常终止,而continue不会

http://www.dtcms.com/a/287961.html

相关文章:

  • 1.2M 小工具! 解决 Windows 系统疑难杂症
  • MVP 最小可行产品
  • 《Electron应用性能深耕:资源加载与内存治理的进阶路径》
  • 【51单片机学习】LED、独立按键
  • 一站式PDF转Markdown解决方案PDF3MD
  • Python技术题2
  • PostgreSQL常用命令与工具指南
  • 93.数字信号处理相关的一些问题
  • 【Java】【力扣】48.旋转图像
  • PyCharm + AI 辅助编程
  • 小明记账簿焕新记:从单色到多彩的主题进化之路
  • k8s快速部署(亲测无坑)
  • Go 语言核心机制深度剖析:指针、defer、多态与空接口实战指南
  • Windows 编程辅助技能:使用 MSDN
  • 千线万网,电路之行——LVS检查的内核逻辑
  • uniapp中腾讯地图SDK-安装及配置(自动定位回显城市)
  • 探索量子计算与法律理论的交叉领域
  • 智能体之变:深度解析OpenAI ChatGPT Agent如何重塑人机协作的未来
  • 文献阅读:全球农田的植被总初级生产力(GPP)、蒸散发(ET)和水分利用率(WUE)的变化研究
  • 周末总结(2024/07/19)
  • 若依部署项目到服务器
  • 数字图像处理(三:图像如果当作矩阵,那加减乘除处理了矩阵,那图像咋变):从LED冬奥会、奥运会及春晚等等大屏,到手机小屏,快来挖一挖里面都有什么
  • Springboot项目的搭建方式5种
  • 深入解析 Amazon Q:AWS 推出的企业级生成式 AI 助手
  • 默认显示两行文字,多余的文字省略掉,变成省略号
  • Vue状态管理:Vuex模块设计方案
  • SpringBoot服装推荐系统实战
  • C++string类(2)
  • fclose 函数的概念和使用案例
  • GEE:批量处理和下载SoilGrids 250m v2.0