python初学者——1、变量


前言

大家好,本人也是一名python萌新,在学习过程中做了一些笔记想和大家分享一下,如果有不完善的地方大家可以指出,让我们一起进步吧。今天的文章主要讲解的是python中的变量创建及其类型。


一、python的变量生成

与C语言不同,python是弱数据类型语言,变量的定义不需要表明类型。例如下图,左侧为python的代码,右侧为运行结果:
左侧图片pytho中的代码,右侧为输出结果


二、python变量类型

python变量与其他语言类似,主要包括以下几种:

①简单类型😊
类型语句
整型inta=2
浮点型floatb=12.254
布尔型 boolc=True
字节型 bytesd=b’jh78’
字符串型 stringe1=‘1abc’ e2=“2abc” e3=‘’‘3abc’‘’ e4=“”“4abc”“”
空类型Nonef=None
复数类型complexg=1+2j
②困难类型😟:主要包括:列表List,集合set,元组tuple,字典dictionary 

❀列表List

	 列表注意小事项:
	  - 支持字符,数字,字符串甚至列表(即嵌套)。 		 
	  - 列表 [头下标:尾下标] ,就可以截取相应的列表,从左到右索引默认 0开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾 		 
	  - 加号 + 是列表连接运算符,星号 * 是重复操作。 		
	  - 有序且包含的内容可以重复。

在这里插入图片描述

代码如下(示例):

variable1=[1,2,5,'aaa','你好',['bbb','哈哈']]
print(variable1)#输出为[1, 2, 5, 'aaa', '你好', ['bbb', '哈哈']]
variable2=['拜拜','ヾ(•ω•`)o']

#判断 A in B 及判断:元素A是否在列表B中
print(1 in variable1)#输出True
print(1 in variable2)#输出False
print(1 not in variable2)#输出Ture

#赋值
variable1[5]='haihaihai'
print(variable1)#输出为[1, 2, 5, 'aaa', '你好', 'haihaihai']
vari=['eee','rrr',['12',58,'哈哈哈']]
vari[2][1]='O(∩_∩)O'
print(vari)#输出为['eee', 'rrr', ['12', 'O(∩_∩)O', '哈哈哈']]

#尾部加入
variable1.append('我是第6位呀!')
print(variable1)#输出为[1, 2, 5, 'aaa', '你好', 'haihaihai', '我是第6位呀!']

#基本操作-截取
print(variable1[3])#输出为 aaa
print(variable1[1:3])#输出为[2, 5]
print(variable1[1:])#输出为[2, 5, 'aaa', '你好', 'haihaihai', '我是第6位呀!']
print(variable1[-1:])#输出为['我是第6位呀!']
print(variable1[-3:])#输出为['你好', 'haihaihai', '我是第6位呀!']
print(variable1[-3:-1])#输出为['你好', 'haihaihai']
print(variable1[-3:-1] *2)#输出为['你好', 'haihaihai', '你好', 'haihaihai']
print(variable1+variable2)#输出为[1, 2, 5, 'aaa', '你好', 'haihaihai', '我是第6位呀!', '拜拜', 'ヾ(•ω•`)o']

#常用函数——尾部加入在前面讲解
#①插入——指定位置 insert
variable2.insert(1,2)
variable2.insert(1,'\(@^0^@)/')
print(variable2)#输出为['拜拜', '\\(@^0^@)/', 2, 'ヾ(•ω•`)o']

#②追加对象 extend
variable3=['sehun',1,4,7,'(T_T)']
variable2.extend(variable3)
print(variable2)#输出为['拜拜', '\\(@^0^@)/', 2, 'ヾ(•ω•`)o', 'sehun', 1, 4, 7, '(T_T)']
#extend与append的区别——extend可以以列表的方式同时添加n个元素,append只能增加一个元素
variable2.append(variable3)
print(variable2)#输出为['拜拜', '\\(@^0^@)/', 2, 'ヾ(•ω•`)o', 'sehun', 1, 4, 7, '(T_T)', ['sehun', 1, 4, 7, '(T_T)']]

#③pop通过指定下标删除元素,并且返回删除的元素
print(variable2.pop())#不指定就默认最后一个 #输出为['sehun', 1, 4, 7, '(T_T)']
print(variable2.pop(2))#输出为2
print(variable2.pop(1))#输出为\(@^0^@)/
print(variable2)#输出为['拜拜', 'ヾ(•ω•`)o', 'sehun', 1, 4, 7, '(T_T)']

#④remove删除指定的数据,通过内容指定,如果出现内容相同的数据,只会删除第一个出现的
variable4=['v','f','t','s','a','r','h','v']
variable2.remove('拜拜')#删除 拜拜
variable2.remove(4)#删除4
print(variable2)#输出为['ヾ(•ω•`)o', 'sehun', 1, 7, '(T_T)']
variable4.remove('v')#删除4
print(variable4)#输出为['f', 't', 's', 'a', 'r', 'h', 'v']

#⑤len(列表) 显示长度
print(len(variable2))#输出为 5

#⑥max(列表)min(列表) 获取列表的最大值与最小值,ASCII比较
#注:不同类型之间无法比较
print(max(variable4))#输出为 v
print(min(variable4))#输出为 a

#⑦翻转reverse-仅仅翻转,不排序
print(variable2)#输出为['ヾ(•ω•`)o', 'sehun', 1, 7, '(T_T)']
variable2.reverse()
print(variable2)#输出为['(T_T)', 7, 1, 'sehun', 'ヾ(•ω•`)o']

#⑧排序sort与sorted 前者对列表本身排序但不输出,后者仅输出排序结果,列表本身无变化
variable5=['e','r','g','y','u','f','a','c']
#sort使用方法
print(variable4)#输出为['f', 't', 's', 'a', 'r', 'h', 'v']
variable4.sort()#默认升序-从小大大
print(variable4)#输出为['a', 'f', 'h', 'r', 's', 't', 'v']
variable4.sort(reverse=True)#降序排列
print(variable4)#输出为['v', 't', 's', 'r', 'h', 'f', 'a']
#sorted使用方法
print(variable5)#输出为['e', 'r', 'g', 'y', 'u', 'f', 'a', 'c']
print(sorted(variable5))#默认升序-从小大大 #输出为['a', 'c', 'e', 'f', 'g', 'r', 'u', 'y']
print(variable5)#输出为['e', 'r', 'g', 'y', 'u', 'f', 'a', 'c']
print(sorted(variable5,reverse=True))#降序排列 #输出为['y', 'u', 'r', 'g', 'f', 'e', 'c', 'a']
print(variable5)#输出为['e', 'r', 'g', 'y', 'u', 'f', 'a', 'c']

#高级函数!!!更高级的。
#①range用于生成一个整数序列——左闭右开
range1=range(5)#从0开始,步长为1,到5结束(不包括5)
range2=range(1,7)#从1开始,到7结束(不包括7),步长为1
range3=range(1,10,2)#从1开始,到10结束(不包括10),步长为2
print(range1,range2,range3)#输出为range(0, 5) range(1, 7) range(1, 10, 2)
#range类型向list类型的转换
variabler1=list(range1)
variabler2=list(range2)
variabler3=list(range3)
print(variabler1,variabler2,variabler3)#输出为[0, 1, 2, 3, 4] [1, 2, 3, 4, 5, 6] [1, 3, 5, 7, 9]

#三种拷贝复制函数——=、copy、deepcopy
# =  双方相互影响——与指针相类似
variabler1=variabler2
print(variabler1,variabler2)#输出为[1, 2, 3, 4, 5, 6] [1, 2, 3, 4, 5, 6]
variabler2.remove(3)
print(variabler1,variabler2)#输出为[1, 2, 4, 5, 6] [1, 2, 4, 5, 6]
variabler1.append('a')
print(variabler1,variabler2)#输出为[1, 2, 4, 5, 6, 'a'] [1, 2, 4, 5, 6, 'a']

# copy 数值都进行了复制,但是内部仅复制了数值,没有复制地址,内部的内部进行了地址复制
variablec1=['wq','mn','huhhu',['a','b','v']]
copy_variablec1=copy.copy(variablec1)
print(copy_variablec1)#输出为['wq', 'mn', 'huhhu', ['a', 'b', 'v']]
variablec1.append(5)
variablec1[3][0]='12345'
print(variablec1,copy_variablec1)#输出为['wq', 'mn', 'huhhu', ['12345', 'b', 'v'], 5] ['wq', 'mn', 'huhhu', ['12345', 'b', 'v']]
copy_variablec1.append('abcd')
copy_variablec1[3][2]='vvvvv'
print(variablec1,copy_variablec1)#输出为['wq', 'mn', 'huhhu', ['12345', 'b', 'vvvvv'], 5] ['wq', 'mn', 'huhhu', ['12345', 'b', 'vvvvv'], 'abcd']

# deepcopy 仅仅是赋予数字,地址没有关系
variabled1=copy.deepcopy(variablec1)
print(variabled1)#输出为['wq', 'mn', 'huhhu', ['12345', 'b', 'vvvvv'], 5]
variablec1.append('你好')
variablec1[3][0]='O(∩_∩)O'
print(variablec1,variabled1)#输出为['wq', 'mn', 'huhhu', ['O(∩_∩)O', 'b', 'vvvvv'], 5, '你好'] ['wq', 'mn', 'huhhu', ['12345', 'b', 'vvvvv'], 5]
variabled1.append('哈哈')
variabled1[3][2]='(●ˇ∀ˇ●)'
print(variablec1,variabled1)#输出为['wq', 'mn', 'huhhu', ['O(∩_∩)O', 'b', 'vvvvv'], 5, '你好'] ['wq', 'mn', 'huhhu', ['12345', 'b', '(●ˇ∀ˇ●)'], 5, '哈哈']

❀集合set

	- 集合及我们高中数学所学到的广义上的集合,无序、不重复且可以包含任何数据(除高级类型之外)。
	- 集合有‘交’、‘并’、‘差’、‘补’四种运算,功能相同。
	- 除此之外集合还可以如同list一样,使用in与 not in,以及len(),max与min函数,sorted函数(不可使用sort函数)。

代码如下(示例):

#集合类型 set
set1={'a','b','f','j','f'}
print(set1)#输出为:{'f', 'b', 'j', 'a'}
set2={'a','c','f','m','hyhy'}
print('set1与set2的交',set1&set2)#输出为:{'f', 'a'}
print('set1与set2的并',set1|set2)#输出为:{'f', 'm', 'b', 'j', 'a', 'c', 'hyhy'}
print('set1与set2的差',set1-set2)#输出为:{'b', 'j'}
print('set1与set2的补',set1^set2)#输出为: {'c', 'm', 'hyhy', 'b', 'j'}
print('m是否在set1集合中:','m' in set1)#输出为False
print('m是否不在set1集合中:','m' not in set2)#输出为False
print(len(set1))#输出为 4
print(max(set1))#输出为 j
print(min(set1))#输出为 a
print(sorted(set1))#['a', 'b', 'f', 'j']

❀元组tuple

	- 元组与列表类似有序且可以包含任何元素,但其内容不能更改及不能进行任何的添加、删除、元素等操作
	- 但是可以包括列表等可以更改元素的数据类型,但此数据类型在元组中也不能修改
	- 与C语言中的常量宏define类似,主要用于赋值等。
	- 其次元组可以通过重名的方式被覆盖,通过del命令进行整个元组的删除。

代码如下(示例):

#元组类型 tuple()
tu1=('a1','b1',['a2','b2','c2'],'c1')
tu2=('w',)#仅包含一个元素时需要添加,
print(tu1)#输出为('a1', 'b1', ['a2', 'b2', 'c2'], 'c1')
print(tu2)#输出为('w',)
tu2=('a1','b1','c1')
print(tu2)#输出为('a1', 'b1', 'c1')
del tu2#删除元组tuple2
tu3=('a','r','n','z','b','q','c','s')
print(max(tu3))#输出为z
print(min(tu3))#输出为a
print(len(tu3))#输出为8
print(tu3[2])#输出为n
print(tu3[1:5])#输出为('r', 'n', 'z', 'b')
print(sorted(tu3))#输出为['a', 'b', 'c', 'n', 'q', 'r', 's', 'z']
print(sorted(tu3[1:5]))#输出为['b', 'n', 'r', 'z']

❀字典dictionary

	-与java中的哈希函数相类似,包含K与V。
	-其中K必须是不能改变的数据类型,是关键字及类似于索引的标签;V可以是任何类型,是被索引指向的内容。
	-主要作用与哈希表类似,由K找V。

在这里插入图片描述
代码如下(示例):

#字典类型 dictionary 与java中的哈希函数相类似,包含k与v
dic1={'name':'py1','age':'11','gender':'girl1','choose':('线代','大物','舞蹈鉴赏')}
dic2={'name':'py1','age':'12','gender':'girl2','choose':('高数','美术','音乐')}
print(dic1['choose'],dic2['choose'])#输出为('线代', '大物', '舞蹈鉴赏') ('高数', '美术', '音乐')
dic1['name']='py'#本来含有的内容根据K索引V进行自动替换
print(dic1['name'])#输出为py
dic1['group']='one'#原本未含有的内容,根据K建立V进行自动添加
print(dic1)#输出为{'name': 'py', 'age': '11', 'gender': 'girl1', 'choose': ('线代', '大物', '舞蹈鉴赏'), 'group': 'one'}
del dic2['choose']#根据K,删除字典中对应的V元素
print(dic2)#输出为{'name': 'py1', 'age': '12', 'gender': 'girl2'}
del dic2#删除整个字典

#字典常用函数

#① copy 深度拷贝
dic3={'name':'py3','age':'13'}
dic4=dic3.copy()
print(dic3,dic4)#输出为{'name': 'py3', 'age': '13'} {'name': 'py3', 'age': '13'}
dic3['name']='py3😊'
print(dic3,dic4)#输出为{'name': 'py3😊', 'age': '13'} {'name': 'py3', 'age': '13'}
dic4['age']='14😊'
print(dic3,dic4)#输出为{'name': 'py3😊', 'age': '13'} {'name': 'py3', 'age': '14😊'}

#②获取keys/values/items——关键字,值和对应关系
print(dic3.keys())#输出为dict_keys(['name', 'age'])
print(dic3.values())#输出为dict_values(['py3😊', '13'])
print(dic3.items())#输出为dict_items([('name', 'py3😊'), ('age', '13')])

#③用a字典更新b字典-之间不会相互影响,仅仅是赋值,不是赋予地址——已有K直接替换,没有K直接生成-update
print(dic3,dic4)#输出为{'name': 'py3😊', 'age': '13'} {'name': 'py3', 'age': '14😊'}
dic3.update(dic4)
print(dic3,dic4)#输出为{'name': 'py3', 'age': '14😊'} {'name': 'py3', 'age': '14😊'}
dic3['age']='13/(ㄒoㄒ)/~~'
dic4['name']='py4/(ㄒoㄒ)/~~'
print(dic3,dic4)#输出为{'name': 'py3', 'age': '13/(ㄒoㄒ)/~~'} {'name': 'py4/(ㄒoㄒ)/~~', 'age': '14😊'}
dica={'name': 'pya', 'age': '1a','gender': 'girla'}
dicb={'name': 'pyb', 'age': '1b'}
dicb.update(dica)
print(dica,dicb)#输出为{'name': 'pya', 'age': '1a', 'gender': 'girla'} {'name': 'pya', 'age': '1a', 'gender': 'girla'}
dicc={'name': 'pyc', 'age': '1c'}
dicb.update(dicc)
print(dicb,dicc)#输出为{'name': 'pyc', 'age': '1c', 'gender': 'girla'} {'name': 'pyc', 'age': '1c'}-可以局部更新,用小的更新大的

#④删除K对应的组合,返回该组合的V值-pop
print(dicb.pop('age'))#输出为1c
print(dicb)#输出为{'name': 'pyc', 'gender': 'girla'}

三、小提示-tips

1.	python的代码需要顶格写,前面不能有空格,不然会报错。
2.	python中不含有char类型,统一称之为string(字符串)类型。
3.	字符串类型的变量“”与“““”””(以及单引号)的区别在于前者不能分行写,后者可以分行写。
4.	“““ ”””也可以作为注释使用,称之为文档注释。
5.	集合中如果有重复的元素,自己会自动去除(长度也不会计算在内)且每次使用print函数输出集合时,集合内元素的顺序不固定。
6.	元组tuple用()小括号,列表list用[]中括号,集合set与字典dictionary用{}大括号。
7.	所定义的元组仅包含一个元素时,需要添加逗号,例如tu2=('w',)。
8.	数据转化类型,只需要A(B)就可以将B转化为A类型,例如tuple(‘hello’)。
9.	选中多行ctrl+/ 加上or取消#(注释符号)。

本文参考了以下博主内容,如有侵权请联系删除:
博主「Jeason_Lan」原文链接:https://blog.csdn.net/jeasonlan/article/details/108920634
博主「「已注销」」原文链接https://blog.csdn.net/weixin_47074883/article/details/105541680

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值