Python类型-语句-函数
文章目录
- 类型
- 动态类型:变量类型会随着程序的运行发生改变
- 注释
- 控制台
- 控制台输入input()
- 运算符
- 算术
- 关系
- 逻辑
- 赋值
- 总结
- 语句
- 判断语句
- while循环
- for循环
- 函数
- 链式调用和嵌套调用
- 递归
- 关键字传参
在C/java中,整数除以整数结果还是整数,并不会将小数部分舍弃!
编程中一般没有四舍五入这样的规则,浮点数IEEE754标准,内存中表示浮点数时会存在微小的误差。
2^2用python表示是2**2
变量是一块存储数据的空间。
变量名最好别和关键字相同,会存在含义的覆盖,如果想用回原来关键字的含义,把新创建的删除就行。
创建变量和初始化以及他类型的确定,都是在首次使用=设置值
类型
type()内嵌函数查看变量类型,
int能表示的数据范围是无穷的,Python是可以根据要表示的数据的大小,自动扩容。就没有long,short,byte类型了。
int a=10是错的,非要指定类型的话是a:int=10
float,C++中是四字节,double是8字节。但是在Python中就是八字节双精度。
str:字符串类型,双引号和单引号都可以。特殊:st="My name is 'yuanwei'",换过来也行,三引号也是可以的。st2='''Myname 'is' "yuanwei"'''随便换着来,三者没有上下关系。
len():求字符串的长度,只能用于字符串类型
字符串拼接:st=st1+st2,新的字符串存储.
语法错误,在成语运行之前解释器可以把错误找出来.
运行时错误必须要到执行到对应的代码才能发现问题
布尔类型:True&&False,必须大写.
不同的类型占用的内存空间是不同的,int是4字节动态扩容;float是8字节,bool一个字节
不同的类型能完成的操作也是不同的.
动态类型:变量类型会随着程序的运行发生改变
一个编程语言是否是动态类型,只是取决于程序运行时类型是否发生变化.所以Python是动态语言
比较灵活,但是更容易出错,各种类型都可以,但是只有在遇到具体操作符时才会出现类型的约束而报错
注释
但凡要更新代码,一定要更新注释.批量注释是ctrl+/
#这是一段注释
a=10 #这里也可以注释
'''
文档字符串,编译器不会去掉
'''
控制台
用户输入命令和机器进行交互,图形化界面应用更广泛.print()打印到控制台
a=10
print(f"a={a}")#格式化字符串,f-string,f是format
print(f"a={a+10}")
控制台输入input()
num=input("请输入一个数字")#返回值实际是字符串,存在类型强转float()int()str()
print(f"您输入的数字是{num}")num1=int(input("请输入一个数字"))
num2=int(input("请输入一个数字"))
print(f"您的数字是{num1+num2}")
运算符
算术
**进行乘方运算,整数次方小数次方都可.2^0.5就是2**0.5
地板除法:7//2=3向下取证,-7//2=-4
关系
关系运算符不仅仅可以针对数字,还可以针对字符串,按照字典序比较就行.针对中文进行字符串大小比较时没有意义的,计算机里面表示中文使用多个字节表示一个较大的数字.
针对浮点数使用==比较相等存在风险,因为浮点数在内存中的表示是存在误差的.

正确写法:
print(-0.00001<(0.1+0.2-0.3)<0.00001)约定精确位数.在python中支持链式的比较.
逻辑
and or not print(not 10<20),print(10<20<30)
短路求值,对于and来说,如果左侧表达式为False,就没有必要看后面的条件了.print(10>20 and 10/0==1)
赋值
a=b=10 #链式赋值
a,b=10,20
#交换值,使用多元赋值
a,b=b,a
a+=1
python不支持+±-这样的自增自减操作,没有报错是因为将++当作是两个正号,值不改变.
总结
如果把布尔类型的值和正数进行算术运算,会把True当成1,False当成0.但是这样的操作是没有意义的.
python只有字符串类型,字符就是长度为1的字符串.""和’'没有任何区别
个正号,值不改变.a=true是错的,a=True是对的.
语句
判断语句
#pass空语句占位,避免编译错误
num=input("请输入一个数字")
if num !=1:#啥都不写pass
else:print(666)
while循环
for循环
for i in range(a,b,c):#[a,b)步长是c,负数的话就是反向打印
shift+F6 统一rename变量
range生成整数序列的可迭代对象
C语言中特殊操作goto,一般情况不建议使用
random.randint(1,6)左右都是闭区间生成一个随机整数.random是别人写好的模块,降低编程的门槛.自己也可以写,但是用别人的更快,不用自己测试bug啥的.
如果想引入其他模块使用import random,Pytharm 可以自动生成这条语句在头部.
函数
-
#动态类型特性,只要保证类型能够实现对应的操作就行 def add(x,y):return x+yprint(add(10,20)) print(add('hello','world')) print(add(10.5,10.8)) print(add(str(10),'hello'))print(10,20,30) -
#一个函数尽量只完成一个任务(计算就是计算,打印就是打印),降低耦合度 # 可以返回多个值 def getPoint():x=10y=20return x,y a,b=getPoint() print(a,b) #如果只关注一个,就用_站位 c,_=getPoint() print(c) -
def calSum(begin,end):thesum=0while begin<end+1:thesum+=beginbegin+=1# print(thesum)return thesum #可有可无 -
作用域的存在使得函数内外可以存在相同名字的变量.函数中优先读取函数内的局部变量,如果没有再访问全局的.
-
如果要在函数内修改全局变量global关键字.没有global,此时会把x=20当作是在函数内部创建的一个局部变量,而实际上是要修改全局变量,为了让函数里面知道是全局的,用global声明一下
def test1():global xx=20 test1() print(f"x真的={x}") -
只有函数和类的代码块才涉及到作用域的概念,if else while for等语句代码块是不存在作用域的,变量在外部仍然可以访问.
-
for i in range(1,11):print(f"内部的i:{i}")print(f"外部的i:{i}") -
Pycharm调试器:断点+debug+单步调试F7+函数调用栈
链式调用和嵌套调用
链式:一个函数的返回值当作另一个函数的参数
调试器左下角,是函数之间的调用栈,里面描述了当前代码的函数之间的调用关系,每一层栈帧选中之后都能看到他的变量.调用函数生成对应的栈帧,函数结束则对应的栈帧销毁.
局部变量在函数自己的栈帧上,虽然两个函数的局部变量名字相同但是不同的栈帧是不同的内存空间,也就是不同的变量.
递归
递归公式,递归结束条件
递归调用看起来是同一个函数,但是是两次调用,其实就是两个栈帧.
每一次递归都会主键接近结束条件.
求n!=n*(n-1)!
def factor(n):if n == 1:return 1return n* factor(n-1)
print(factor(5))
#形参默认值,带有默认值的要在参数列表的后面
def add(x,y,debug=False):if debug:print(f"x={x},y={y}")return x+yresult =add(10,20,True)
print(result)
关键字传参
def test(x,y):print(f"x={x},y={y}")test(x=10,y=20)
test(y=20,x=10)
test(10,y=20)#关键字参数和位置参数混着用,位置参数放在前面
关键字参数配合着形参默认值使用,一般的函数形参都设定默认值,传参时指定关键字参数即可.
相关文章:
Python类型-语句-函数
文章目录类型动态类型:变量类型会随着程序的运行发生改变注释控制台控制台输入input()运算符算术关系逻辑赋值总结语句判断语句while循环for循环函数链式调用和嵌套调用递归关键字传参在C/java中,整数除以整数结果还是整数,并不会将小数部分舍弃…...
真兰仪表在创业板开启申购:募资约20亿元,IPO市值约为78亿元
2月9日,上海真兰仪表科技股份有限公司(下称“真兰仪表”,SZ:301303)开启申购,将在深圳证券交易所创业板上市。本次上市,真兰仪表的发行价为26.80元/股,市盈率43.06倍。 据贝多财经了解…...
【2023】Prometheus-Prometheus与Alertmanager配置详解
记录一下Prometheus与Alertmanager的配置参数等内容 目录1.Prometheus1.1.prometheus.yml1.2.告警规则定义2.alertmanager2.1.alertmanager.yml2.1.1.global:全局配置2.1.1.1.以email方式作为告警发送方2.1.1.2.以wechat方式作为告警发送方2.1.1.3.以webhook方式作为…...
华为HCIE学习之openstack基础
文章目录一、Openstack各种文件位置二、Openstack命令操作1.使用帮助三、用命令发放云主机1、创建租户2、创建用户并与租户绑定3、注册镜像4、创建规格5、创建公有网络及其子网(做弹性IP用)6、创建私有网络及其子网7、创建路由并设置网关与端口8、创建安…...
Python实现贝叶斯优化器(Bayes_opt)优化BP神经网络分类模型(BP神经网络分类算法)项目实战
说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。1.项目背景贝叶斯优化器(BayesianOptimization) 是一种黑盒子优化器,用来寻找最优参数。贝叶斯优化器是基…...
Elasticsearch(九)搜索---搜索辅助功能(下)--搜索性能分析
一、前言 上篇文章我们学习了ES的搜索辅助功能的一部分–分别是指定搜索返回的字段,搜索结果计数,分页,那么本次我们来学习一下ES的性能分析相关功能。 二、ES性能分析 在使用ES的过程中,有的搜索请求的响应比较慢,…...
化繁为简|中信建投基于StarRocks构建统一查询服务平台
近年来,在证券服务逐渐互联网化,以及券商牌照红利逐渐消退的行业背景下,中信建投不断加大对数字化的投入,尤其重视数据基础设施的建设,期望在客户服务、经营管理等多方面由经验依赖向数据驱动转变,从而提高…...
2023数字中国创新大赛·数据开发赛道首批赛题启动报名
由数字中国建设峰会组委会主办的2023数字中国创新大赛(DCIC 2023)已正式启幕,本届大赛结合当下数字技术发展的热点和业界关注的焦点,面向产业实际需求设置了九大赛道。其中,数据开发赛道2月8日正式上线首批赛题&#x…...
MySQL数据库
1.MySQL的MyISAM与InnoDB两种存储引擎在,事务、锁级别,各自的适用场景? 1.1事务处理上方面 MyISAM:强调的是性能,每次查询具有原子性,其执行数度比InnoDB类型更快,但是不提供事务支持。 InnoDB:提供事务…...
鸿蒙设备学习|快速上手BearPi-HM Micro开发板
系列文章目录 第一章 鸿蒙设备学习|初识BearPi-HM Micro开发板 第二章 鸿蒙设备学习|快速上手BearPi-HM Micro开发板 文章目录系列文章目录前言一、环境要求1.硬件要求2.软件要求3.Linux构建工具要求4.Windows开发工具要求5.工具下载地址二、安装编译基础环境1.安装Linux编译环…...
软件测试标准流程
软件测试的基本流程大概要经历四个阶段,分别是制定测试计划、测试需求分析、测试用例设计与编写以及测试用例评审。因此软件测试的工作内容,远远没有许多人想象的只是找出bug那么简单。准确的说,从一个项目立项以后,软件测试从业者…...
Python身份运算符
Python身份运算符身份运算符用于比较两个对象的存储单元运算符描述实例isis 是判断两个标识符是不是引用自一个对象x is y, 类似 id(x) id(y) , 如果引用的是同一个对象则返回 True,否则返回 Falseis notis not 是判断两个标识符是不是引用自不同对象x is not y &a…...
linux 安装,卸载jdk8
1>安装1 xshell,xsftp 教育版下载 https://www.xshell.com/zh/free-for-home-school/ 2下载jdk包 https://www.oracle.com/java/technologies/downloads/3在usr下新建java文件夹把jdk包拉进去解压tar -zxvf 4首先使用vim打开etc目录下的profile文件 --> vim /etc/profile…...
标准舆情监测平台解决方案及流程,TOOM舆情监测工作计划有哪些?
舆情监测流程一般包括:数据收集、数据分析、信息汇报三个部分。首先,通过多种途径收集舆情数据,如网络媒体、社交媒体、博客、论坛等;其次,对收集的数据进行分析,统计舆情趋势、舆情类型等;最后,根据舆情分…...
Lombok使用总结
文章目录介绍Lombok原理常用注解DataGetterSetterToStringEqualsAndHashCodeNoArgsConstructorAllArgsConstructorRequiredArgsConstructorAccessors(chain true)遇到的问题谨慎使用Data问题总结Builder和Data不能共用解决介绍 官网:https://projectlombok.org/ …...
Qt 如何处理耗时的线程,不影响主线程响应 QApplication::processEvents)
事件原因: 前些时间遇到一个问题,在主线程接收子线程读的数据,一直接收不到,但放在子线程没有问题; 后面查了一下,因为接收子线程使用了 qApp->processEvents(); 查了一下 qApp->processEvents(); …...
Antd-table全选踩坑记录
目录 一、需求 二、问题 编辑三、解决 四、全选选中所有数据而不是当前页 一、需求 最近遇到一个小小的需求,在我们这个项目中,有一个表格需要添加全选删除功能。这还不简单吗,于是我找到andt的官网,咔咔咔一顿cv࿰…...
防灾必看,边滑坡安全预警解决方案
一、行业背景在我国大部分地区经常会有雨季发生,大量的雨水渗透到了土壤内部,长时间饱含雨水的土壤会变得很重而且还会减少与下方岩石之间的摩擦力,顺着山坡这个滑梯滑下去,造成崩塌、滑坡、泥石流等地质灾害。地质灾害每年都是有…...
你每天所做的工作,让你产生了成就感吗?
我们是为了什么而工作?金钱?理想?生活? 似乎这一切都没有标准答案,你自己问你自己,问问你自己,每天踏入公司,坐到工位面前,你最真实的感受是什么? “成就感…...
MySQL中的锁
共享锁 共享锁也成为读锁,针对同一份数据,多个事务的读操作可以同时进行而不会互相影响,相互不阻塞的。 通过下面命令加共享锁 SELECT...LOCK IN SHARE MODE #或 SELECT...FOR SHARE;#(8.0新增语法)排他锁 排他锁也叫写锁,当一…...
使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...
日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...
STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...
linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?
uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件,用于在原生应用中加载 HTML 页面: 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...
脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)
一、OpenBCI_GUI 项目概述 (一)项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台,其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言,首次接触 OpenBCI 设备时,往…...
破解路内监管盲区:免布线低位视频桩重塑停车管理新标准
城市路内停车管理常因行道树遮挡、高位设备盲区等问题,导致车牌识别率低、逃费率高,传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法,正成为破局关键。该设备安装于车位侧方0.5-0.7米高度,直接规避树枝遮…...
