python是强语言还是弱语言?
python是强语言还是弱语言,没有一个具体官方的说法
数据类型也就是变量类型,一般编程语言的变量类型可以分成下面两类。
静态类型与动态类型
静态类型语言:一种在编译期间就确定数据类型的语言。大多数静态类型语言是通过要求在使用任一变量之前声明其数据类型来保证这一点的。Java 和 C 是静态类型语言。
动态类型语言:一种在运行期间才去确定数据类型的语言,与静态类型相反。VBScript 和 Python 是动态类型的,因为它们确定一个变量的类型是在你第一次给它赋值的时候。不使用显示数据类型声明,且确定一个变量的类型是在第一次给它赋值的时候。
强类型与弱类型
强类型语言:一种总是强制类型定义的语言。Java 和 Python 是强制类型定义的。您有一个整数,如果不明确地进行转换 ,不能将把它当成一个字符串。强类型:不允许不同类型相加。例如:整形+字符串会报类型错误。偏向于不容忍隐式类型转换
弱类型语言:一种类型可以被忽略的语言,与强类型相反。VBScript 是弱类型的。在 VBScript 中,您可以将字符串 '12' 和整数 3 进行连接得到字符串'123',然后可以把它看成整数 123 ,所有这些都不需要任何的显示转换。偏向于容忍隐式类型转换
所以,Python 既是动态类型语言 (因为它不使用显示数据类型声明),又是强类型语言(因为只要一个变量获得了一个数据类型,它实际上就一直是这个类型了)。
Python是有变量类型的,而且会强制检查变量类型:
注意: 强类型定义语言在速度上可能略逊色于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效的避免许多错误。另外,“这门语言是不是动态语言”与“这门语言是否类型安全”之间是完全没有联系的!
例如:Python是动态语言,是强类型定义语言(类型安全的语言); javaScript是动态语言,是弱类型定义语言(类型不安全的语言); JAVA是静态语言,是强类型定义语言(类型安全的语言)
img
变量的声明和定义
Python 与大多数其它语言一样有局部变量和全局变量之分,但是它没有明显的变量声明。变量通过首次赋值产生,当超出作用范围时自动消亡。
变量定义:用于为变量分配存储空间,还可为变量指定初始值。程序中,变量有且仅有一 个定义。
变量声明:用于向程序表明变量的类型和名字。
定义也是声明
java中变量声明
String employee; // String 类型的变量
boolean isSave; // boolean 类型的变量
int create_at; // int 类型的变量
java中变量赋值
char usersex='女'; // 直接赋值
或者
String username; // 先声明
username ="琪琪"; // 后赋值
另外,多个同类型的变量可以同时定义或者初始化,但是多个变量中间要使用逗号分隔,声明结束时用分号分隔。
String username,address,phone,tel; // 声明多个变量
int num1=12,num2=23,result=35; // 声明并初始化多个变量
JavaScript的隐式转换
JavaScript的数据类型分为六种,分别为null,undefined,boolean,string,number,object。
object是引用类型,其它的五种是基本类型或者是原始类型。
隐式转换记住以下三点:
1.字符串加数字,数字就会转成字符串。
2.数字减字符串,字符串转成数字。
如果字符串不是纯数字就会转成NaN。
字符串减数字也一样。
两个字符串相减也先转成数字。
3.乘,除,大于,小于跟减的转换也是一样。
console.log(10+'20') //2010 String
console.log(10-'20')//-10 number
console.log(10-'one') //NaN not a number
console.log(10-'101a') //NaN
console.log(10'20') //200 number
console.log('10''20') //200 number
console.log(20/'10') //2 number
console.log('20'/'10') //2 number
console.log('20'/'one') //NaN
隐式赋值: a =1
显示赋值: char a = 1
python是强语言还是弱语言?的更多相关文章
- C语言中的强符号与弱符号
转自:http://blog.csdn.net/astrotycoon/article/details/8008629 一.概述 在C语言中,函数和初始化的全局变量(包括显示初始化为0)是强符号,未初 ...
- 浅谈C语言中的强符号、弱符号、强引用和弱引用
摘自http://www.jb51.net/article/56924.htm 浅谈C语言中的强符号.弱符号.强引用和弱引用 投稿:hebedich 字体:[增加 减小] 类型:转载 时间:2014- ...
- 关于C语言中的强符号、弱符号、强引用和弱引用的一些陋见,欢迎指正
首先我表示很悲剧,在看<程序员的自我修养--链接.装载与库>之前我竟不知道C有强符号.弱符号.强引用和弱引用.在看到3.5.5节弱符号和强符号时,我感觉有些困惑,所以写下此篇,希望能和同样 ...
- 嵌入式C语言自我修养 09:链接过程中的强符号和弱符号
9.1 属性声明:weak GNU C 通过 __atttribute__ 声明weak属性,可以将一个强符号转换为弱符号. 使用方法如下. void __attribute__((weak)) fu ...
- 浅谈C语言中的强符号、弱符号、强引用和弱引用【转】
转自:http://www.jb51.net/article/56924.htm 首先我表示很悲剧,在看<程序员的自我修养--链接.装载与库>之前我竟不知道C有强符号.弱符号.强引用和弱引 ...
- Python 语言特性:编译+解释、动态类型语言、动态语言
1. 解释性语言和编译性语言 1.1 定义 1.2 Python 属于编译型还是解释型? 1.3 收获 2. 动态类型语言 2.1 定义 2.2 比较 2. 动态语言(动态编程语言) 3.1 定义 3 ...
- 1.1 Python是一种什么样的语言
小时不识月,呼作白玉盘.很多人习惯地说Python不过是一种脚本语言而已,实际上这种说法是非常不准确的,完全不能体现出Python的强大.严格来说,Python是一门跨平台.开源.免费的解释型高级动态 ...
- php实现弱语言底层原理分析(转)
php中弱语言类型的底层实现 PHP是弱语言类型,主要分为三类: 1.标量类型:integer.string.float.boolean 2.复合类型:array.object 3.特殊类型:reso ...
- php中弱语言类型的底层实现
PHP是弱语言类型,主要分为三类: 1.标量类型:integer.string.float.boolean 2.复合类型:array.object 3.特殊类型:resource.null php是通 ...
随机推荐
- linux常用的命令一:系统工作命令
系统工作命令: 帮助命令:man -h \ man --help(tips:‘--’长格式后用完整的选项名称,‘-’短格式后用单个字母缩写) echo命令:格式:echo [字符串|$变量] date ...
- Devexpress MVC GridView / CardView (持续更新)
//获取gridview里面的combo box 显示的文本 //获取某个column在gridview的 index RightGridView.GetColumnByField("Fun ...
- [CF780C]Andryusha and Colored Balloons 题解
前言 完了,完了,咕值要没了,赶紧写题解QAQ. 题意简述 给相邻的三个节点颜色不能相同的树染色所需的最小颜色数. 题解 这道题目很显然可以用深搜. 考虑题目的限制,如果当前搜索到的点为u, 显然u的 ...
- sh_02_判断年龄改进版
sh_02_判断年龄改进版 # 输入用户年龄 age = int(input("请输入年龄:")) # 判断是否满 18 岁 (>=) if age >= 18: # ...
- 当SQL Server出现当 MUST_CHANGE 为 ON (开)时
取消账号强制策略时出现错误 当 MUST_CHANGE 为 ON (开)时,不能将 CHECK_POLICY 和 CHECK_EXPIRATION 选项设为 OFF (关). (Microsoft S ...
- 采用.bat批处理命令快速设置Java环境变量
背景: java课程培训,每次到机房需要重新安装JDK,每次都采用图形界面进行操作比较麻烦(慢),于是在网上查了一下CMD命令设置系统环境变量的方法,再次记录下来. 设置方法: 1.找到JDK安装路径 ...
- substring()方法是如何工作
1.substring()方法做了什么? substring(beginIndex,endIndex)方法返回一个从beginIndex到endIndex-1的字符串 String x = " ...
- Mysql中经常出现的乱码问题
Mysql中执行SET NAMES utf8这条SQl的作用 1)首先,Mysql服务器的编码和数据库的编码在配置文件my.ini中设置: 用记事本打开配置文件,修改代码:default-charac ...
- How to Create a Basic Plugin 如何写一个基础的jQuery插件
How to Create a Basic Plugin Sometimes you want to make a piece of functionality available throughou ...
- 条形码(barcode)code128生成代码
条形码(barcode)code128生成代码 很简单 多些这位兄弟https://bbs.csdn.net/topics/350125614 下面是我的DEMO 直接放到VS2005下面编译即可 # ...