首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python基础语法-函数错误处理-常见异常类型

在Python中,可以通过异常处理机制来处理代码执行过程中出现异常,避免程序崩溃或出现错误结果。...Python中提供了许多内置异常类型,常见异常类型包括:NameError当尝试访问一个未定义变量时,会抛出NameError异常。...a = b + 1 # 抛出NameError异常,b未定义TypeError当函数或操作应用于错误类型对象时,会抛出TypeError异常。...a = "Hello"b = 2c = a + b # 抛出TypeError异常,无法将字符串和整数相加ValueError当函数或操作应用于具有正确类型但不适合特定值对象时,会抛出ValueError...a = 1 / 0 # 抛出ZeroDivisionError异常,除数为0IndexError当尝试访问超出列表或元组索引范围值时,会抛出IndexError异常。

2.6K40
您找到你想要的搜索结果了吗?
是的
没有找到

`操作符是如何“抽象”错误类型与“短路”函数

操作符是如何“抽象”错误类型与“短路”函数 首先,?操作符是被用来勾连·函数体内Result·与·函数返回值类型Result·【语法糖】。...操作符前Result中E1·类型转换·为【函数】返回值类型Result中E2。 再“短路”当前执行函数和退出函数。...【函数】返回值类型Result中E2是一个“同时兼容于所有其它错误类型、统一【“抽象”错误类型】”。...按其“抽象”方式分为如下两种情况: 上面两种方式都能把·从函数体内抛出·不同类型·错误,经由?操作符,收拢于“一处”。 在这里,我把【类型转换】称为“抽象”是否有些牵强呀?...毕竟,其基础原理与oop中【抽象】不太一样。 前者“一处”是(类型转换至)一个具体类型 —— 静态分派; 后者“一处”是(类型转换至)trait Object —— 动态分派。

1.6K10

C语言:跨平台环境下使用snprintf,vsnprintf系列函数要注意返回值问题

标准C语言函数snprintf,vsnprintf系列函数可以向指定缓冲区输出格式化打印字符串。...GCC 5.2.0)和MSVC(vs2015) 编译上面的代码。...因为输出内容超过了buffer大小从运行结果看buf中结果是不一致,返回值也是不一样。 在MSVC下返回是待输出字符串('hello')大小,而GCC下则是-1, 这不会吧?...GNU实现逻辑就是只要buffer长度不足,就认为是出错了,输出-1,然后把标准错误代码 errno 置为ERANGE(34)(不会把buffer最后一字节设置为‘\0’结尾,这样无结尾字符串很危险了...MSC实现逻辑是,不管buffer长度是多少,都不认为是出错,调用者可以通过返回值是不是超过了buffer大小来判断是否完整输出(不论怎样会把buffer最后一字节设置为‘\0’结尾)。

1.8K20

__attribute__机制介绍

) 函数属性(Function Attribute),函数属性可以帮助开发者把一些特性添加到函数声明中,从而可以使编译器在错误检查方面的功能更强大。...或strfmon参数表格式规则对该函数参数进行检查。...当遇到函数需要返回值却还没运行到返回值处就已退出来情况,该属性可以避免出现错误信息。...C库函数abort()和exit()声明格式就采用了这种格式: extern void  exit(int)   __attribute__( ( noreturn ) ); extern void...事实,const参数不能用在带有指针类型参数函数中,因为该属性不但影响函数参数值,同样也影响到了参数指向数据,它可能会对代码本身产生严重甚至是不可恢复严重后果。

2.8K11

第009课 gcc和arm-linux-gcc和Makefile

(3)汇编 汇编就是将第二步输出汇编代码翻译成符合一定格式机器代码,在Linux系统一般表现为ELF目标文件(OBJ文件)。反汇编是指将机器代码转换为汇编代码,这在调试程序时常常用到。...return 0; } 根据程序可以看出来,函数功能是输出,char,int,char **类型所占据字节数; 编译 gcc -o pointer_test pointer_test.c...实例1 步骤一 我们在上面函数基础,写一个函数test1() void test1() { int ia; int *pi; char *pc; /*第一步 :...wildcard pattern) # pattern定义了文件名格式, wildcard取出其中存在文件 这个函数wildcard会以pattern这个格式,去寻找存在文件,返回存在文件名字。...利用前面讲到函数,把obj里所有文件都变为.%.d格式,并用变量dep_files表示。 利用前面介绍wildcard函数,判断dep_files是否存在。

4.8K30

C++内置宏定义

C99 引入了 __func__,它和 GCC 提供 __FUNCTION__ 功能类似,二者都是字符串格式,指示当前处理函数名。...【注】__func__ 和 __FUNCTION__ 本质都不是宏,因为预处理器并不知道当前处理函数名。 __DATE__:字符串格式,指示预处理器处理当前代码时日期。...还定义了一批表示数据类型占用字节数宏,如下表所示: 数据类型 数据类型占用字节数宏 int __SIZEOF_INT__ long __SIZEOF_LONG__ long long __SIZEOF_LONG_LONG...__ ptrdiff_t __SIZEOF_PTRDIFF_T__ 【注】在某些特定系统GCC 如果没有提供 stdint.h 头文件,则上表中某些数据类型对应宏可能就未被定义。...系统内置宏定义 对于某些特定系统本身内置一些宏,GCC 提供和其等价宏,等价宏命名在原有宏名称基础,首尾加上一个或多个下划线,保证首尾下划线数均为 2。

1.7K20

程序员C语言快速上手——基础篇(二)

有时候我们写程序有语法错误,我们希望编译时候编译器能给出详细提示信息,这时候就可以加上另一个参数-Wall,让编译器在编译器时输出更多更详细信息,建议每次编译都加上这个参数,这样有什么错误也好查...基本数据类型打印 在第一个示例中,我们已经使用printf函数打印了hello world,这里print是打印意思,那么f是什么意思呢?其实这里f是缩写,是format意思,代表格式化打印。...既然是格式化打印,那一定会有格式占位符了,例如我要打印“”He is 18 years old"这句话,显然18是一个变量,他今年18,明年就是19,所以在这句话中需要把一个变量拼进去,这个时候就可以使用占位符...long size = 4 5 float size = 4 6 double size = 8 可以看到,long类型仍然是4字节,然而在我Mac OS电脑测试,64位GCC编译出来long...输出是8字节,在其他类Unix操作系统一致,可见Windows系统C存在很多奇怪特殊现象。

99030

【c语言】 sizeof、strlen计算字符大小长度题目总结概括(详解)

---- sizeof sizeof可以理解为一个操作符,其作用简单说就是返回一个对象或者类型所占内存字节数。...MSDN解释为: The sizeof keyword gives the amount of storage, in bytes, associated with a variable or a...:sizeof object;   //sizeof对象; 举例:(在64位平台) one: int是一种类型,代表整形 所以 sizeof(int)——正确  答案是:4 sizeof    int...提示:" const char *" 类型 实参 与 " char *" 类型 形参不兼容, 函数 形参 为 char * 类型 直接写入字符串报错。 ...于是我抱着试一试心态到linux平台上用gcc运行了一下,请看结果: [bsk@localhost test1]$ gcc test.c test.c: In function ‘main’: test.c

37370

Kotlin 简单优雅高阶函数Kotlin 简单优雅高阶函数《Kotlin极简教程》正式架:1 . Kotlin 函数式编程: 函数组合。一切皆是函数。2. 简单好用 Kotlin 类型别名

Kotlin 简单优雅高阶函数 非常感谢您亲爱读者,大家请多支持!!!有任何问题,欢迎随时与我交流~ ---- 函数代表一种关系 f 蕴涵逻辑流。...整个图G就是一幅美妙抽象逻辑之塔 映射图 。 ? image.png 1 . Kotlin 函数式编程: 函数组合。一切皆是函数。...// 简单直接函数定义 fun f(x: Int) = x % 2 !...简单好用 Kotlin 类型别名 typealias G=(String) -> Int typealias F=(Int) -> Boolean typealias H=(String) -> Boolean...简单优雅高阶函数定义(复合函数): compose(f, g) = f(g(*)) 组合函数返回传递给它两个函数组合: (f、g) = f (g (*))。

94330

Linux内核源码规范解析

(主要) 取决于它是用于函数还是关键字。...这是一个 「反例」 : s = sizeof( struct file ); 当声明指针类型或者返回指针类型函数时, * 首选使用方式是使之靠近变量名 或者函数名,而不是靠近类型名。...可能你使用了很长时间 Unix 朋友已经告诉你 GNU emacs 能自动帮你格式化 C 源代码,而且你也注意到了,确实是这样,不过它 所使用默认值和我们想要相去甚远 (实际,甚至比随机打的还要差...有可能指针变量类型被改变时,而对应传递给内存分配函数 sizeof 结果不变。 强制转换一个 void 指针返回值是多余。...虽然从技术上说这是正确,但是实际这种情况下即使不加 inline gcc 也可以自动使其内联。

2.7K20

抽丝剥茧C语言(初阶

C语言初阶() 学习C语言由浅到深,我们先来了解C语言大概是什么样子intro 初识C语言 C语言初阶() 什么是C语言 第一个C语言程序 数据类型 变量、常量 本章到此为止,请路过大佬们指正错误...如果有多个 main 函数,就像你开车一样,你经常走目的地明明只有一条路,某一天突然多出一条路或者是n条路,你会怀疑人生,或许你会说你可以随便选择一条路,但是程序不会,它是会停下来。...printf那一行是什么? printf 是一个输出函数,它括号是什么,以后会讲(暂时先记住这个格式就好)括号里面的双引号之内是你要输出信息。...我们C语言数据类型也一样,对于一些数据是有定义类型,由你和编译器来定义它是什么类型数据。...2.数据类型很重要,必须声明这个变量是什么类型,不然就是现实生活中“不明生物”! 3.变量可以被修改,常量是不可以被修改。 本章到此为止,请路过大佬们指正错误!谢谢!

26500

【CC++】C语言特性总结

文章目录  工具gcc编译器VS2019   C语言编译过程C语言代码主体必要内容   C语言数据类型关键字常量变量进制表示sizeof 关键字整型:intshort、int、long、long long...编译命令格式:  gcc [-option1] ... g++ [-option1] ......sizeof不是函数,所以不需要包含任何头文件,它功能是计算一个数据类型大小,单位为字节  sizeof返回值为size_t  size_t类型在32位操作系统下是unsigned int,是一个无符号整数...在给字符型变量赋值时,需要用一对英文半角格式单引号(’ ')把字符括起来。  字符变量实际并不是把该字符本身放到变量内存单元中去,而是将该字符对应 ASCII 编码放到变量存储单元中。...函数定义和声明区别: 1)定义是指对函数功能的确立,包括指定函数名、函数类型、形参及其类型函数体等,它是一个完整、独立函数单位。

98600

【CC++】C语言特性总结

文章目录 工具 gcc编译器 VS2019 C语言编译过程 C语言代码主体 必要内容 C语言数据类型 关键字 常量 变量 进制表示 sizeof 关键字 整型:int short、int、long、long...关键字 sizeof不是函数,所以不需要包含任何头文件,它功能是计算一个数据类型大小,单位为字节 sizeof返回值为size_t size_t类型在32位操作系统下是unsigned int,...在给字符型变量赋值时,需要用一对英文半角格式单引号(’ ‘)把字符括起来。 字符变量实际并不是把该字符本身放到变量内存单元中去,而是将该字符对应 ASCII 编码放到变量存储单元中。...失败:NULL 注意:如果参数dest所指内存空间不够大,可能会造成缓冲溢出错误情况。...函数定义和声明区别: 1)定义是指对函数功能的确立,包括指定函数名、函数类型、形参及其类型函数体等,它是一个完整、独立函数单位。

1.2K10

多年老c++程序员在静态数组这里翻船了

因为我现在gcc编译器,大家都知道是7.1.0版本,基本连c++17都能支持了,我就试了一下之前保留gcc4.1.2版本,结果报错啦,如下: test.cpp: In function ‘int...main()’: test.cpp:15: 错误:可变大小对象 ‘arr’ 不能被初始化 所以很显然,我记忆没有错误,之前静态数组元素个数它就必须是个不可变,否则编译就会出错。...然后我又看了下生产编译器,是gcc4.8.5版本,它也是支持c++11,难道这个新特性是c++11支持吗?...(arr)/sizeof(arr[0])); return 0; } 然后直接使用gcc命令编译,而没有使用g++,结果跟上面那段代码是一模一样,到这里我大致就明白了,这就是c语言里面的新特性...、复合字面量、变长度数组、伸缩数组成员、指派初始化器、 fenv.h 、变参数宏、复数、 func 、十六进制浮点格式( %a )、 lconv 货币格式化、 isblank 、窄与宽字符串字面量连接

34620

gcc 嵌入式汇编(asm)实现bsr(位扫描)指令

,count中就是结果,如果所有的位都为0,则count为-1; 注意这里1LLU<< count, LLU限定前面的数字1为long long(64位),U限定为无符号类型(unsigned),...内建函数实现 gcc本身提供了丰富有用内置函数(Built-in Functions)(点击打开gcc官网链接),在这些函数中我们发现一个对解决这个问题有用函数 int __builtin_clz...(unsigned int x) 下面这段是gcc官网对这个函数解释: — Built-in Function: int __builtin_clz (unsigned int x) Returns...so,我有了新想法,用这个函数来实现bsr inline __int8 _bsr_int64_(unsigned __int64 num) { //num为0时直接返回-1,避免不确定结果...内嵌汇编不是我们常见intel汇编格式,而是at&t汇编格式,关于这方面的知识可以在网上找到很多参考资料如: gcc内嵌汇编用法(点击打开链接) AT&T汇编格式与Intel汇编格式比较(点击打开链接

71740
领券