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

【数据分析从入门到“入坑“系列】利用Python学习数据分析-Python语法基础

使用缩进,而不是括号 Python使用空白字符(tab和空格)来组织代码,而不是像其它语言,比如R、C++、JAVA和Perl那样使用括号。...当你将对象作为参数传递给函数时,新的局域变量创建了对原始对象的引用,而不是复制。如果在函数里绑定一个新对象到一个变量,这个变动不会反映到上一层。因此可以改变可变参数的内容。...如果可能的话,我推荐避免副作用,采用不可变的方式,即使要用到可变对象。 标量类型 Python的标准库中有一些内建的类型,用于处理数值数据、字符串、布尔值,和日期时间。...字符串对象有format方法,可以替换格式化的参数为字符串,产生一个新的字符串: In [74]: template = '{0:.2f} {1:s} are worth US${2:d}' 在这个字符串中...{1:s}表示格式化第二个参数为字符串。 {2:d}表示格式化第三个参数为一个整数。

93530

《利用Python进行数据分析·第3版》学习笔记2·Python语法基础

"foo") 变量和参数 当在Python中为变量(或命名)赋值,可以在等号右边创建对这个变量的引用。...,新的局域变量创建了对原始对象的引用,而不是复制。...如果在函数里将一个新对象绑定到一个变量,这个操作不会影响到该函数(即函数圆括号以内的部分)以外“范围”的同名变量。因此,可以修改可变参数的内部值。...: 3 / 2 Out[57]: 1.5 要使用C语言风格的整除(即如果不是完整的整数,则删除小数部分),可以使用底除运算符//: In [58]: 3 // 2 Out[58]: 1 字符串 可以用单引号...: 'str' object does not support item assignment 如果需要修改字符串,必须用函数或方法创建一个新的字符串,例如使用字符串的replace方法: In [63

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

    大话 JavaScript(Speaking JavaScript):第六章到第十章

    () SyntaxError: Unexpected token ) 函数声明后面必须是一个合法的语句,而()不是。...通常情况下,您不需要了解它们,因为您大多数情况下会因为您本不应该做的事情而得到更多的警告。 变量必须在严格模式下声明 在严格模式下,所有变量必须明确声明。这有助于防止拼写错误。...,而不是“在”块内部。...一个字符串和一个数字,然后将字符串转换为数字,并通过严格相等比较两个操作数。 1. 一个布尔值和一个非布尔值,然后将布尔值转换为数字并进行宽松比较(再次)。 1....这样的字的最低 3 位用作类型标记,以指示该值是对象、整数、双精度、字符串还是布尔值(正如你所看到的,即使这个早期引擎已经尽可能将数字存储为整数)。 对象的类型标记为 000。

    31110

    Python编程常见问题与解答

    为什么在IDLE中执行会提示语法错误呢? 答:应该在命令提示符环境执行,不是在Python开发环境中执行。...4.问:为什么使用pip命令安装扩展库是提示“不是内部或外部命令,也不是可运行的程序或批处理文件”?...答:在Python中,不可哈希(unhashable)和可变的意思是一样的。整数、实数、复数、字符串、元组这些是不可变的,或者说是可哈希的。而列表、字典、集合是可变的,或者说是不可哈希的。...19.问:已知x是一个字符,我想使用x+1得到下一个字符,为什么提示“TypeError: can only concatenate str (not "int") to str”呢?...24.问:我机器上明明是有test.txt这个文件的,为什么使用内置函数open()打开时提示文件不存在呢? 答:如果文件test.txt不在当前文件夹中,在打开或读写时必须指定完整路径。

    3.6K10

    Proxy

    注意,要使得Proxy起作用,必须针对Proxy实例(上例是proxy对象)进行操作,而不是针对目标对象(上例是空对象)进行操作。 如果handler没有设置任何拦截,那就等同于直接通向原对象。...值得注意的是,has方法拦截的是HasProperty操作,而不是HasOwnProperty操作,即has方法不判断一个属性是对象自身的属性,还是继承的属性。...注意,该方法只能返回布尔值,否则返回值会被自动转为布尔值。 这个方法有一个强限制,它的返回值必须与目标对象的isExtensible属性保持一致,否则就会抛出错误。...ownKeys方法返回的数组成员,只能是字符串或 Symbol 值。如果有其他类型的值,或者返回的根本不是数组,就会报错。...该方法必须返回一个布尔值,否则会被自动转为布尔值。

    2.4K10

    ES6系列十四:Proxy

    注意,要使得Proxy起作用,必须针对Proxy实例(上例是proxy对象)进行操作,而不是针对目标对象(上例是空对象)进行操作。 如果handler没有设置任何拦截,那就等同于直接通向原对象。...值得注意的是,has()方法拦截的是HasProperty操作,而不是HasOwnProperty操作,即has()方法不判断一个属性是对象自身的属性,还是继承的属性。...注意,construct()方法中的this指向的是handler,而不是实例对象。...注意,该方法只能返回布尔值,否则返回值会被自动转为布尔值。 这个方法有一个强限制,它的返回值必须与目标对象的isExtensible属性保持一致,否则就会抛出错误。...ownKeys()方法返回的数组成员,只能是字符串或 Symbol 值。如果有其他类型的值,或者返回的根本不是数组,就会报错。

    1.3K30

    ES6(三):变量的解构赋值

    解构赋值语法是一个Javascript表达式,这使得可以将值从数组或属性从对象提取到不同的变量中,文中主要讲数组的解构赋值、对象的解构赋值、字符串的解构赋值、数值和布尔值的解构赋值以及函数参数的解构赋值...等号的右边如果不是可遍历的机构则会报错: cdoe let [a] = 1; console.log(a); // TypeError: 1 is not iterable let [a] = false...*code let { foo, bar } = { bar: '我是bar', foo: '我是foo' } console.log(foo); // 我是foo console.log(bar...); // 我是bar 从代码中可以看出来对象解构赋值的时候是和顺序无关的,而属性名字就显得尤为重要。...length这个属性,因此我们还可以对该属性进行解构赋值: code let { length: len } = 'string'; console.log(len); // 6 数值和布尔值的解构赋值

    75620

    异常处理

    一丶异常和错误   程序中有两种错误     1.语法错误(这种错误,根本过不了Python解释器的语法检测,必须在程序执行前就改正) ? ?....isspace(): print('输入的是空格,就执行我这里的逻辑') elif len(num1) == 0: print('输入的是空,就执行我这里的逻辑') else:...print('其他情情况,执行我这里的逻辑') ''' 问题一: 使用if的方式我们只为第一段代码加上了异常处理,但这些if,跟你的代码逻辑并无关系,这样你的代码会因为可读性差而不容易被看懂 问题二...我们是不是要用except把所有的异常都列一遍呀.那样太麻烦了,Python也想到了这个,所以Python提供了一个万能异常:Exception,他可以捕获任意异常 s1 = 'hello' try:...=2 # 只能接受一个布尔值 False assert 1==1 # 只能接受一个布尔值 False print(123456) if 1 == int(input()): pass else

    1.1K40

    为什么range不是迭代器?range到底是什么类型?

    2 3 4 对于 range() 函数,有几个注意点:(1)它表示的是左闭右开区间;(2)它接收的参数必须是整数,可以是负数,但不能是浮点数等其它类型;(3)它是不可变的序列类型,可以进行判断元素、查找元素...为什么不更规范点,令 range() 生成的是迭代器呢? 关于这个问题,我没找到官方解释,以下纯属个人观点 。...这样还有一个好处,即当作为参数的可迭代对象发生变化的时候,作为结果的迭代器因为是消耗型的,不会被错误地使用。...TypeError: unsupported operand type(s) for *: 'range' and 'int' 那么问题来了:同样是不可变序列,为什么字符串和元组就支持上述两种操作,而偏偏...4、小结 回顾全文,我得到了两个偏冷门的结论:range 是可迭代对象而不是迭代器;range 对象是不可变的等差序列。 若单纯看结论的话,你也许没有感触,或许还会说这没啥了不得啊。

    87870

    快速学习ES6语法,用最快的速度入门

    的情况 console.log(bar); // 报错ReferenceError let bar = 2; 在let生命变量之前调用该变量则会报错,而var的处理方式是把声明提前而赋值操作保留在原地...(三)变量的解构赋值 这部分是ES6新加的一些赋值的方法,我每个部分给一个例子,只要别人的代码使用时能看懂就行。 1.数组解构赋值 以前,为变量赋值,只能直接指定值。...let {length : len} = 'hello'; len // 5 4.数值和布尔值的解构赋值 解构赋值时,如果等号右边是数值和布尔值,则会先转为对象。...let { prop: x } = undefined; // TypeError let { prop: y } = null; // TypeError 5.函数参数的解构赋值 函数的参数也可以使用解构赋值...function add([x, y]){ return x + y; } add([1, 2]); // 3 上面代码中,函数add的参数表面上是一个数组,但在传入参数的那一刻,数组参数就被解构成变量

    68520

    新手快速学习ES6语法,用最快的速度入门ES6就看这里

    最近正在学习ES6,对于ES6的语法有一些自己的理解,想写这篇文章帮助跟我一样的新手快速入门ES6而不至于连代码都看不懂.至于开发环境的搭建什么的例如balel下载什么的,百度上有很多的教程了.我在这就不再赘述了...(三)变量的解构赋值 这部分是ES6新加的一些赋值的方法,我每个部分给一个例子,只要别人的代码使用时能看懂就行。 1.数组解构赋值 以前,为变量赋值,只能直接指定值。...let {length : len} = 'hello'; len // 5 4.数值和布尔值的解构赋值 解构赋值时,如果等号右边是数值和布尔值,则会先转为对象。...let { prop: x } = undefined; // TypeError let { prop: y } = null; // TypeError 5.函数参数的解构赋值 函数的参数也可以使用解构赋值...function add([x, y]){ return x + y; } add([1, 2]); // 3 上面代码中,函数add的参数表面上是一个数组,但在传入参数的那一刻,数组参数就被解构成变量

    71030

    超详细JSON教程!那些Python中JSON的使用方式都在这里

    值(Value): 值可以是字符串、数字、布尔值(true/false)、数组、对象或null。 如果值是字符串,则必须用双引号括起来。...这个过程是反序列化的一部分,即将数据从一种格式(在这个情况下是JSON字符串)转换成另一种格式(在这个情况下是Python的数据结构,如字典或列表)。...这个过程是序列化的一部分,即将数据从一种格式(在这个情况下是Python的数据结构,如字典或列表)转换成另一种格式(在这个情况下是JSON字符串)。...如果字典的键不是基本类型(即str, int, float, bool, None),则设置为True可以跳过这些键;否则将引发TypeError。...如果字典的键不是基本类型(即str, int, float, bool, None),则设置为True可以跳过这些键;否则将引发TypeError。

    1.2K00

    小结ES6基本知识点(二)

    TypeError: Cannot convert a Symbol value to a string 下面介绍Set和Map Set: 类似数组,不同的是数组中元素是允许重复的,而Set里面的元素都是唯一的...可接受字符串、数组、对象等作为参数。 Map: 类似对象,不同的是对象中的key是字符串或数字,而Map中的key可以是任何数据类型。...(s1); // Set(4) {1, 2, 3, 4} console.log([...s1]); // [1, 2, 3, 4] 验证(2): 参数是字符串,也可以用于字符串去重 思路:[...new...Set(“xxx”)]可得到去重后的数组,再通过.join(‘’)转成字符串,即可得到去重后的字符串。...这意味着add两个空对象后,Set的size是2而不是1: let s1 = new Set({a:1},{b:1}) // Uncaught TypeError: object is not iterable

    2.3K450

    你真的会用Python中的JSON吗,超级详细的JSON常用方法讲解,一文搞定JSON!

    如果JSON字符串表示的是其他类型(如字符串、数字、布尔值、null),则返回相应的Python类型。...JSON文件中的字符串必须使用双引号(")来包围键和字符串值。...object_pairs_hook:一个可选的函数,类似于object_hook,但它用于处理解码后的有序对列表(即列表中的元素是二元组,而不是字典)。...lineno: 一个整数,表示错误发生的行号(如果JSON数据是分行的)。注意,这个属性可能不是所有Python版本或json模块实现中都可用。...colno: 一个整数,表示错误发生的列号(同样,如果JSON数据是分行的)。这个属性也可能不是所有实现中都可用。

    20410

    2022秋招前端面试题(九)(附答案)

    ,它的构造函数指向的了根构造函数Object,所以这时候p.constructor === Object ,而不是p.constructor === Person。...我们都知道计算机表示十进制是采用二进制表示的,所以 0.1 在二进制表示为// (0011) 表示循环0.1 = 2^-4 * 1.10011(0011)复制代码那么如何得到这个二进制的呢,我们可以来演算下小数算二进制和整数不同..."+" 操作符,如果有一个为字符串,那么都转化到字符串然后执行字符串拼接"-" 操作符,转换为数字,相减 (-a, a * 1 a/1) 都能进行隐式强制类型转换[] + {} 和 {} + []复制代码布尔值到数字...1 + true = 21 + false = 1转换为布尔值for 中第二个whileif三元表达式|| (逻辑或) && (逻辑与)左边的操作数符号不能被转换为数字能被转换为布尔值(都是 true)...但对于引用类型的数据(主要是对象和数组)来说,变量指向数据的内存地址,保存的只是一个指针,const只能保证这个指针是固定不变的,至于它指向的数据结构是不是可变的,就完全不能控制了。

    2.6K30

    帮你彻底弄懂 JavaScript 类型转换

    问:为什么 [1, 2, 3].map(parseInt) 返回 [1,NaN,NaN]? 答:parseInt函数的第二个参数表示要解析的数字的基数。该值介于 2 ~ 36 之间。...我来翻译一下这段话。 ToPrimitive 方法接受两个参数,一个是输入的值 input,一个是期望转换的类型 PreferredType。..." 返回 OrdinaryToPrimitive(input, hint) 抽象操作的结果 OrdinaryToPrimitive 而 OrdinaryToPrimitive 方法也接受两个参数,一个是输入的值...var a = 1, b = '2'; var c = a + b; // '12' 也许你会好奇,为什么不是将后面的 b 转换为 number 类型,最后得到3?...从图上看到如果转换后的两个值的 Type 有一个是 String 类型,那么就将两个值经过 toString 转换后串起来。因此最后得到了'12',而不是3。 我们还可以再看一个例子。

    75810

    Julia机器学习核心编程.4

    在win上加e参数,执行这个代码.不可以.类unix可以试试,我有空操作 我超级喜欢这种循环写法 我这个传参写法没有错,不知道这么久没有出来 与其他编程语言一样,Julia可以更改存储在变量中的值或改变其状态...交换两个变量,python 见怪不怪 代码01行定义了_ab变量,这个名称可以使用。代码03行定义了@ab,04行报错,虽然提示的是“=”错误,但可以推测出其实是变量名称错误。...代码05行直接输入了值1000,06行得到了一个输出结果。请注意,“!”(感叹号)不应该在变量名称中使用,因为以感叹号结尾的函数用于修改其参数。...比如下面的代码: 01 julia> if 0 02 println("hello") 03 end 代码01行中的if 0将报错,错误信息如下: 01 TypeError:上下文中使用非布尔值.../loading.jl:515 意思就是代码01行中的0不是布尔值,而是Int64类型的值。 其实我觉得把0放在一个大的数集中,很正确!

    68820
    领券