摘要:在迈过的大门后正式开始了解变量变量定义当看到的变量定义方式时让我有一点意外即没有变量的类型说明符也没有定义变量的标志符如的的这样就定义一个变量这个变量的类型取决于变量指向的值行尾不能加分号让我也是纠结了好一会儿不过还是要入乡随俗的慢慢习惯了
在迈过HelloWorld的大门后, 正式开始了解Python
变量 变量定义当看到Python的变量定义方式时, 让我有一点意外.即没有变量的类型说明符, 也没有定义变量的标志符(如: JavaScript的var, VB的Dim)
x = 1
这样, 就定义一个变量 x 这个变量的类型, 取决于变量指向的值. 行尾不能加分号, 让我也是纠结了好一会儿, 不过还是要入乡随俗的, 慢慢习惯了就好.
数据类型 基本数据类型基本数据类型包括 int, float, str, bool
测试基本数据类型:
i = 1 f = 2.0 s = "jack" b = True print("i type", type(i)) print("f type", type(f)) print("s type", type(s)) print("b type", type(b))
执行结果:
常用的数据类型list
tuple
set
dictionary
arr = [1, "jack", 9.7, True] print(arr) print(type(arr))
执行结果:
同样我们也可以定义一个二维数组:
arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] print(arr[1][1]) # 5
当数组中的内容不固定时, 我们还可以动态操作 list:
arr = [] arr.append("A") arr.append("B") arr.append("C") arr.insert(1, "X") arr.remove("B") arr.pop() arr.pop(0) print(arr)
append: 将在数组末尾添加元素
insert: 将在指定位置添加元素
remove: 删除指定元素
pop: 删除指定位置的元素, 如果没有指定位置, 则删除末尾元素
tuple和list非常类似,但是tuple一旦初始化就不能修改
classmates = ("Michael", "Bob", "Tracy") print("classmates =", classmates) print("classmates[0] =", classmates[0]) classmates[0] = "Jack" # TypeError: "tuple" object does not support item assignment
但是当tuple中含有 list, set, dictionary时, 情况就不一样了
classmates = ("Michael", ["a", "b"]) classmates[1].append("c") print("classmates =", classmates)
执行结果:
classmates = ("Michael", ["a", "b", "c"])
看上去 classmates 改变了, 但实际上 classmates 是没有变的. classmates[1]指向的list的指针是没有变的, 改变的是指针指向的list
set有一个特性, 就是元素的内容是唯一的, 还有set和tuple一样, 只可以添加不可变的值
s = set([1, 2, 3]) # 初始化Set时, 只能接收list s.add(4) s.add((4, 5)) # set 只可以添加不可变的值 s.add((4, 5)) # 不会重复添加 s.add((4, 5, 6)) x = "ABC" s.add(x) x = "XYZ" # 虽然 x 改变了指针指向, 但set中原来添加的并不是变量x, 而是x所指向的"ABC" # s.add([1, 2, 5]) # set 不能添加可变的元素 s.remove(1) s.remove((4, 5, 6)) # s.remove(5) # KeyError: 5 print(s)
执行结果:
dictionary = { "name" : "小明", "age" : 23, "phone":"18733774869", "age" : 24 # 这样是可以的, 新值会覆盖旧值, 但实际情况中这样没有意义 } dictionary["age"] = dictionary["age"] + 1 # 修改dictionary中指定key的值 dictionary["address"] = "北京, 丰台区" # 向dictionary中添加新的元素 print(isinstance(dictionary["phone"], str)) print(isinstance(dictionary["age"], int)) print(isinstance(dictionary["name"], str)) print(dictionary["age"]) if "age" in dictionary: # 判断dictionary中, 是否存在指定的key print(dictionary["age"]) for key in dictionary: print(key, " => ", dictionary[key]) print(dictionary.pop("age")) # 删除指定的key print(dictionary.get("Age")) # None # print(dictionary["Age"]) # KeyError: "Age" print(dictionary.get("Age", -1)) # -1, 若Map中没对应的key, 则返回指定的默认值
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/41226.html
摘要:楚江数据是专业的互联网数据技术服务,现整理出零基础如何学爬虫技术以供学习,。本文来源知乎作者路人甲链接楚江数据提供网站数据采集和爬虫软件定制开发服务,服务范围涵盖社交网络电子商务分类信息学术研究等。 楚江数据是专业的互联网数据技术服务,现整理出零基础如何学爬虫技术以供学习,http://www.chujiangdata.com。 第一:Python爬虫学习系列教程(来源于某博主:htt...
摘要:以下这些项目,你拿来学习学习练练手。当你每个步骤都能做到很优秀的时候,你应该考虑如何组合这四个步骤,使你的爬虫达到效率最高,也就是所谓的爬虫策略问题,爬虫策略学习不是一朝一夕的事情,建议多看看一些比较优秀的爬虫的设计方案,比如说。 (一)如何学习Python 学习Python大致可以分为以下几个阶段: 1.刚上手的时候肯定是先过一遍Python最基本的知识,比如说:变量、数据结构、语法...
摘要:上一篇学习下一代语法一,我们学习了关于块作用域变量或常量声明和语法新的字符串拼接语法模版字面量数组元素或对象元素的解构赋值和对象字面量简写的相关知识。这便是扩展运算符的用途之一。 本文同步 带你入门 JavaScript ES6 (二),转载请注明出处。 上一篇学习下一代 JavaScript 语法: ES6 (一),我们学习了关于块作用域变量或常量声明 let 和 const 语法、...
摘要:时间永远都过得那么快,一晃从年注册,到现在已经过去了年那些被我藏在收藏夹吃灰的文章,已经太多了,是时候把他们整理一下了。那是因为收藏夹太乱,橡皮擦给设置私密了,不收拾不好看呀。 ...
阅读 1652·2021-09-26 09:55
阅读 1385·2021-09-23 11:22
阅读 2747·2021-09-06 15:02
阅读 2657·2021-09-01 11:43
阅读 3976·2021-08-27 13:10
阅读 3691·2021-08-12 13:24
阅读 2080·2019-08-30 12:56
阅读 3008·2019-08-30 11:22