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新增语法)排他锁 排他锁也叫写锁,当一…...
WebView自定义进度条、加载动画,拿走直接用~
年前有个小需求,要对有些域名的H5进行加载流程优化,通过展示H5加载动画来安抚用户焦躁的心情,以提高用户体验。虽然不能理解加个动画咋就优化了用户体验,但需求还是得做的。想着这是个基础的小功能,独立性比较好&#…...
内存数据库Apache Derby、H2
概述 传统关系型数据库涉及大量的工作,如果想在Java应用程序里使用MySQL数据库,至少需要如下步骤: 安装(可选:配置用户名密码)建表(要么从命令行进入,要么安装一个可视化工具&…...
麻省理工出版 | 2023年最新深度学习综述手册
UCL Simon Prince的新书:《Understanding Deep Learning》 ,在2023年2月6日由MIT Press出版。他之前写过很受欢迎的《Computer Vision: Models, Learning, and Inference》。 关于这本最新的深度学习手册,作者这样介绍它: 正如书…...
vi命令详解
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Oct 13 2020 16:04:38) 用法: vim [参数] [文件 …] 编辑指定的文件 或: vim [参数] - 从标准输入(stdin)读取文本 或: vim [参数] -t tag 编辑 tag 定义处的文件 或: vim [参数] -q [errorfile] 编辑第一个出错处的文件 参数:…...
抖音的外卖行业入局,为中小外卖企业创业者的机会给了哪些机会?
一则关于抖音进入外卖市场的消息,让美团“非常受伤”。 2月8日,美团(03690.HK)盘中跌幅超9%。截至收盘,美团报收153.1港元,跌幅6.48%。美团大幅下跌的根源就是前一天关于抖音外卖进展的消息传闻。 2月7日,…...
供应PEG试剂AC-PEG-COOH,Acrylate-PEG-Acid,丙烯酸酯-PEG-羧基
英文名称:AC-PEG-COOH,Acrylate-PEG-Acid 中文名称:丙烯酸酯-聚乙二醇-羧基 丙烯酸酯-PEG-COOH是一种含有丙烯酸酯和羧酸的线性杂双功能PEG试剂。它是一种有用的带有PEG间隔基的交联剂。丙烯酸酯可与紫外光或自由基引发剂聚合。丙烯酸酯-PE…...
java二叉排序树
1.先看一个需求 给你一个数列 (7, 3, 10, 12, 5, 1, 9),要求能够高效的完成对数据的查询和添加 2.解决方案分析 使用数组 数组未排序, 优点:直接在数组尾添加,速度快。 缺点:查找速度慢. [示意图] 数组排序…...
聊一聊 gRPC 的四种通信模式
温馨提示:本文需要结合上一篇 gRPC 文章一起食用,否则可能看不懂。 前面一篇文章松哥和大家聊了 gRPC 的基本用法,今天我们再来稍微深入一点点,来看下 gRPC 中四种不同的通信模式。 gRPC 中四种不同的通信模式分别是:…...
科技云报道:开源真的香,风险知多少?
科技云报道原创。 过去几年,开源界一片火热,开源软件技术已全面进军操作系统、云原生、人工智能、大数据、半导体、物联网等行业领域。 数据显示,我国超九成企业在使用或正计划使用开源技术。 与此同时,全球各大开源组织相继兴…...
国产化适配迁移记录
国产化适配迁移记录 本项目基于RuoYi-Vue的框架进行迁移。目前已完成覆盖测试暂无其他问题。 国产化环境 名称版本达梦数据库DmJdbcDriver18 8.1.2.144通用mapper – tk.mybatismapper-spring-boot-starter 4.2.5<!-- 达梦数据库--><dependency><groupId>…...
一个网站可以做多少个小程序/发布友情链接
距离上一次MaxCompute新功能的线上发布已经过去了大约一个季度的时间,而在这一段时间里,MaxCompute不断地在增加新的功能和特性,比如参数化视图、UDF支持动态参数、支持分区裁剪、生成建表DDL语句功能等功能都已经得到了广大开发者的广泛使用…...
制作一个网站的流程/seo百度快速排名
人工智能和深度学习发展趋势尽管当今流行的数字转换工具扩展了分析,社交,物联网和移动技术所提供的可能性,但是还有一个不可忽视的潜在因素。 如果企业的基础架构能够跟上步伐,那么企业就只能进行足够快的转型。 那么,…...
做网站在哪里租服务器/seo优化专员工作内容
ThinkPHP是一个框架:MVC(采用面向对象思想)框架 市面上常用的框架: zend framework yii thinkPHP ThinkPHP: 有完善的中文资料,使用相对来说比较多 1. 下载ThinkPHP 解压之后生成两个文件:Thin…...
建设论坛网站需要做什么的/推广工具有哪些
本来对Javascript是一点都不懂的,不过看到Jquery有那么多诱人的功能,特别是Jquery UI提供的功能是十分的强大,加上各种各样的插件,Jquery基本上是无所不能。本来一直想做一个类似与iGoogle的拖动,原来不知道如何下手。…...
2017做啥网站能致富/微信小程序开发费用
一、聚合函数 1.Count:如果数据库表的没有数据,count(*)返回的不是null ,而是0查看共有多少个部门 Select count(dname) from dept;2.Avg(平均) ,max(最大),minÿ…...
中国企业集成网网址电子商务/网站seo优化方案项目策划书
有时,程序中需要判断一个字符是否是字母。可以使用正则表达式或者PHP内置函数判断。本篇只讲解判断一个字符而非字符串,所以以下示例中的输入参数都是一个字符。以下函数只判断一个字符是否字母,如果输入的是字符串可能会有异常结果ÿ…...