Python基础

数据类型

Python中的变量不需要声明。每个变量在使用前必须赋值,变量赋值以后才会被创建
Numbers / String / List / Tuple /Sets / Dictionaries
python中数字有四种类型:整数、布尔型、浮点数和复数

  • 不可变数据(3个):Number(数字)、String(字符串)、Tuple(元组)
  • 可变数据(3个):List(列表)、Dictionary(字典)、Set(集合)

数字(整数、浮点数、复数)

  • int(整数)如1,只有一种整数类型int,表示为长整形。
  • flost(浮点数)如1.23,3E-2

  • bool( 布尔值)如true(布尔值 可以用and or 和 not运算)
  • 空值 用None表示。
  • 变量赋值 与Java类似 (python为动态语言 不需要要声明变量的类型)
  • 常量 即不可改变的量

日常演示

type() 函数可以用来查询变量所指的对象类型(也可以用isinstance来判断)
两者区别是

  • type()不会认为子类是一种父类类型。

  • isinstance()会认为子类是一种父类类型。

  • print默认输出是换行的,如果实现不换行的话需要在末尾加上end=""
    代码演示

print( y )
print('---------')
# 不换行输出
print( x, end=" " )

变量

  • Python中的变量不需要声明。每个变量在使用前必须赋值,变量赋值以后该变量才会被创建。
  • 在Python中,变量就是变量,没有类型,我们所说的“类型”是变量所指的内存中对象的类型。

字符串(String)

  • 单引号或者双引号括起来的文本
  • Python中的字符串有两种索引方式,从左到右以0开始,从右到左以-1开始。
  • Python中的字符串,不能改变
  • 转义符“\”,使用r可以让反斜杠不发生转义。r"this is a line with \n".
10 / 3 = 3.3333 # 除法运算 
9 / 3 = 3.0 # 浮点数
10 / 3 = 3 # 底板除 即取整 
7 % 3 = 2 # 底板除 即取整 

容器

  • Python支持一种数据结构的基本概念,名为容器(container)。容器基本上就是可包含其他对象的对象。两种主要的容器是序列(如列表和元组)和映射(如字典)。在序列中,每个元素都有编号,而在映射中,每个元素都有名称(也叫键)。有一种既不是序列也不是映射的容器,它就是集合(set).
  • 序列:序列是一种数据结构,其中的元素带编号(编号从0开始)。列表、字符串和元组
    都属于序列,其中列表是可变的(你可修改其内容),而元组和字符串是不可变的(一旦
    创建,内容就是固定的)。要访问序列的一部分,可使用切片操作:提供两个指定切片起
    始和结束位置的索引。要修改列表,可给其元素赋值,也可使用赋值语句给切片赋值。

List

python内置的一种数据类型,是一种有序的集合。可以随时添加删除参数,集合保存的数据可以不为同一种类型。
特点

  • 查找和插入的时间随着元素的增加而增加;
  • 占用空间小,浪费内存很少。
  • 列表是可以修改的,而元组不可以

日常方法

  • len(list) 获得list元素的个数
  • list[index]访问当前位置的元素
  • list[-index]访问倒数第N个位置的元素
  • list.insert(1,'jack') 插入到当前位置
  • list.pop() 删除list末尾的元素
  • list.append(data)追加数据
  • del list[index] 删除数据
  • list.extend(list2) 附加到末尾
classmates = ['Michael', 'Bob', 'Tracy']
classmates.append(data) #追加数据到末尾

>>> x = ['aardvark', 'abalone', 'acme', 'add', 'aerate']
>>> x.sort(key=len) 
>>> x
['add', 'acme', 'aerate', 'abalone', 'aardvark']


>>> x = [4, 6, 2, 1, 7, 9]
>>> x.sort(reverse=True)
>>> x
[9, 7, 6, 4, 2, 1]

Python中列表是可变的,这是它区别于字符串和元组的最重要的特点,一句话概括即:列表可以修改,而字符串和元组不能。

tuple

有序列表叫元组,与集合不同的是,一旦初始化就不可改变。因为不可变,所以更安全

  • 不能新增,不能删除,只能查看,不能替换。
  • 可变 是二维数组可变
>>> t = ('a', 'b', ['A', 'B'])
>>> t[2][0] = 'X'
>>> t[2][1] = 'Y'
>>> t
('a', 'b', ['X', 'Y'])

// 将一个序列 转换为元组
tuple([1,2,3])

条件判断

age = 3
if age >= 18:
    print('adult')
elif age >= 6:
    print('teenager')
else:
    print('kid')

if判断条件简写 只要x是非零数值,非空字符串,非空list,就判断为true,否则为false。

 if x:
    print('true')

input

  • input()返回的数据类型为字符串,字符串不能与整数比较。
birth = input('birth: ')
birth2 = int(birth)
if birth < 2000:
    print('00前')
else:
    print('00后')

循环

  • for循环
names = ['Michael','Bob','Tracy','Dody']
for name in names:
    print(name)
  • while循环
sum = 0
n = 99
while n > 0:
    sum = sum + n
    n = n - 1
print(sum)
  • break continue 千万记得缩进 缩进 缩进
n = 0
while n < 10:
    n = n + 1
    if n % 2 == 0: # 如果n是偶数,执行continue语句
        continue # continue语句会直接继续下一轮循环,后续的print()语句不会执行
    print(n)

set

set和dirt类似,是一组key的集合,但不存储value,由于key不能重复,所以没有重复的key。

>>> s = set([1, 1,2,2,3, 3])
>>> s
{1, 2, 3}
# 通过add(key)方法添加元素
>>> s.add(4)
>>> s
#通过remove(key)删除元素
>>> s.remove(4)
>>> s

dict

特点

  • 查找和插入的速度极快,不会随着key的增加而变慢;
  • 需要占用大量的内存,内存浪费多。

注意

  • 回None的时候Python的交互环境不显示结果
  • dict内部存放的顺序和key放入的顺序是没有关系的。
  • dict的key必须是不可变对象。
  • dict字典 类似于Java中的Map,键值对存储
  • dict是一种拿控件换时间的方法。
>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> d['Michael']
# pop(key) 删除一个key
# 二是通过dict提供的get()方法,如果key不存在,可以返回None
# 注意:返回None的时候Python的交互环境不显示结果。
>>>  d.get('Michael')
95

迭代器和生成器

两个基本方法

  • iter(list) # 创建迭代器对象
  • next(it) 输出迭代器的下一个元素

>>>list=[1,2,3,4]
>>> it = iter(list)    # 创建迭代器对象
>>> print (next(it))   # 输出迭代器的下一个元素
1
>>> print (next(it))
2
>>>

逻辑运算符

  • is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。
  • 注: id() 函数用于获取对象内存地址。

a = 10
b = 20

list = [1,2,3,4,5]

if(1 not in list):
    print("存在")
else:
    print("不存在")

if ( a is b ):
   print ("变量引用对象是同一个")
else:
   print ("变量引用对象不是同一个")

'''
if(a and b):
    print("and a = ",a)
else:
    print("and b = ",b)

if(a or b):
    print("or a = ",a)
else:
    print("or b = ",b)
'''
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,319评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,801评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,567评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,156评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,019评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,090评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,500评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,192评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,474评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,566评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,338评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,212评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,572评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,890评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,169评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,478评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,661评论 2 335

推荐阅读更多精彩内容

  • 一、Python中数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值。但...
    大嘴蝸牛阅读 989评论 0 5
  • 〇、前言 本文共108张图,流量党请慎重! 历时1个半月,我把自己学习Python基础知识的框架详细梳理了一遍。 ...
    Raxxie阅读 18,892评论 17 410
  • 一、快捷键 ctr+b 执行ctr+/ 单行注释ctr+c ...
    o_8319阅读 5,770评论 2 16
  • 当已经训练好的模型如何直接使用,。参考demo3, 两种load方式,根据你选择的是pickle,还是joblib...
    老肖阅读 190评论 0 0
  • 案主,女,32岁,公务员。画作名为《家》。 这副图描绘了一个临近傍晚的时刻,一家人围坐桌前,其乐融融。 你的图重心...
    周米啊阅读 518评论 0 0