记录Python学习,踏实走好每一步。
至于Python的安装,CSDN上面有很多资料,按照资料安装即可
提示:以下是本篇文章正文内容,下面案例可供参考
初识Python,要知道哪些是python保留的关键字,这些字有特殊的含义,我们在自定义变量的时候不能用这些字。
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
打印变量,可以同时输出多个变量。
print() 函数的详细语法格式如下:
print (value,…,sep=’’,end=’\n’,file=sys.stdout,flush=False)
print()默认有换行符存在,如果要改变输出方式采用print(XX,end='X ')
下面的30和40会在同一行输出,用空格隔开
print ("hello.word,this is my first python program")
print (30,end=' ')
print(40)
可以将打印信息存在某个文件中。
f=open("demo.txt","w")
print("helloword",file=f)
print('good luck',file=f)
f.close()
可以将多个变量自定义格式输出,用sep参数
name="susan"
age=20
print(name,age,sep="-----")
input()函数可以从控制台获取用户输入的信息:
str=input(提示信息),注意:input()函数输出的默认为字符串类型。
name=input("please input your name:")
print("my name is :"+name)
在Python中,每个对象(object)包括三个要素:id(),type(),value()
运算符包括数学运算符和逻辑运算符。
举例:==和is
==比较的对象的内容是否相等
is比较的是对象的id值是否相等,即对象是否为同一个对象。
>>> a=257
>>> b=257
>>> print(a is b)
False
>>> print(a == b)
True
但是在pycharm里面:
c=257
d=257
print(c is d)
print(id(c) is id(d))
ture
false
为什么在pycharm和Console里的运行结果不一样呢? 存储好的脚本文件(Script file)和在Console中的交互式(interactive)命令,执行方式不同。对于脚本文件,解释器将其当作整个代码块执行,而对于交互性命令行中的每一条命令,解释器将其当作单独的代码块执行。而Python在执行同一个代码块的初始化对象的命令时,会检查是否其值是否已经存在,如果存在,会将其重用。
可以参考 [https://blog.csdn.net/sparkbye/article/details/79038862] 另外,对应可变类型(列表,集合,字典),is的返回值为False.
创建列表的方法有两种:
listname=[ele0,ele1,ele2…]
listname=["zhangsan","lisi","wangwu"]
使用list()函数进行创建
name=list("xiaohong")
print(name)
访问列表的元素,方法一:listname[index]
print(name[0])
方法二:采用切片的方式listname[start: end: step]
print(name[2:6:2])
注意:listname[:]可以取出列表中所有的元素
print(name[:])
列表的元素添加,listname.append(obj),在列表的尾部添加单个元素,添加的对象作为一个整体。
name.append("fiona")
print(name)
['x', 'i', 'a', 'o', 'h', 'o', 'n', 'g', 'fiona']
listname.extend(seq)可以多个元素。seq指列表。
name2=['maomao','dongdong']
name.extend(name2)
listname.insert(index,obj)在指定位置添加元素。
ame.insert(1,'haha')
print(name)
listname.pop()从列表尾部移除列表,加参数index可以删除指定位置的元素
ame.pop()
print(name)
name.pop(2)
print(name)
del.listname【index】删除指定位置的元素,del.listname【start:end】删除指定位置断的元素
del name[1]
print(name)
del name[2:5]
print (name)
listname.remove(obj)删除某个元素值,注意:obj必须存在于列表中,否则程序会报错。
name.remove('fiona')
print(name)
clear(listname)清除列表中所有元素。
clear(name)
listname.index(obj)查看obj在列表中对应的索引位置。
name=['x', 'a', 'n', 'g', 'maomao']
print(name)
print(name.index('g'))
3
查找某个元素是否在某个范围里,用listname.index(obj,startindex,endindex),当不在指定的区间中,程序会报错。
print(name.index('g',0,9))
查找某个元素在列表中出现的次数,listname.count(obj)
print(name.count('a'))
元组(tuple)也是序列结构,与列表一样,也是有特定顺序的元素排列组成。
不同之处:
1.列表可以增,删,改元素,从而改变列表的序列;
2.元组一旦被创建,便无法更改。
创建元组的方法:
用tuplename=(ele0,ele1,ele2…),注意为(),列表为【】
tuple1=('xiaohua','xiaoming','xiaozhao','xiaoli')
print(tuple1)
用tuple函数进行创建。tuple(obj)
tuplel2=tuple('fiona')
print(tuplel2)
tuple无增删改,可以进行元素查找,tuple.index(obj)和tuple.count(obj)
字典(dict)是Python里的唯一映射类型。它是无序的,可变序列的序列,以key-value形式存在。索引成为key,数值为value.
特征:
1.通过key进行元素的查找
2.字典是任意数据类型的无序集合
3.字典是可变的,并且可以任意嵌套
4.key必须唯一并且不可以改变
字典的创建,dictname={key1:value1,key2:value2…}
dict1={
'name':'zhangsan','age':22,'address':'hebei'}
print(dict1)
利用自带函数dictname.fromkeys()进行创建
knowledge=["数学","语文","英语"]
dict2=dict.fromkeys(knowledge)
print(dict2)
dict2=dict.fromkeys(knowledge,100)
print(dict2)
{
'数学': None, '语文': None, '英语': None}
{
'数学': 100, '语文': 100, '英语': 100}
将二维数值转化为字典,注意元素长度,不可以超过2.
dict3=[("one",2) ,("o",2)]
print(dict3)
dict3=dict(dict3)
print(dict3)
通过zip()函数
a=[1,2,3]
b=['a','b','c']
c=dict(zip(a,b))
print(c)
{
1: 'a', 2: 'b', 3: 'c'}
访问字典里的元素,dictname[key]来访问字典中的value。(使用该方法必须保证key存在于字典中,如果不存在会报错)
print(c[1])
利用dictname.get(key)进行访问,不会出现上述情况,推荐使用。
print(c.get(4))
None
打印字典里的元素用dictname.items();打印字典里的key用dictname.keys(),打印字典里的value用dictname.values().
for m in c.items():
print(m)
for n in c.keys():
print(n)
for l in c.values():
print(l)
(1, 'a')
(2, 'b')
(3, 'c')
1
2
3
a
b
c
向字典中添加元素。
c[4]='d'
print(c)
{
1: 'a', 2: 'b', 3: 'c', 4: 'd'}
删除字典的元素,用dictname.pop(key)和dictname.popitem()
c.pop(3)
print(c)
{
1: 'a', 2: 'b', 4: 'd'}
c.popitem()
print(c)
{
1: 'a', 2: 'b'}
字典的拷贝,dict.copy(obj)
score1={
"数学":90, "英语":89, "语文":98}
score2=dict.copy(score1)
print(score2)
{
'数学': 90, '英语': 89, '语文': 98}
移动字典里的元素,比如删除
score1.pop("英语")
print(score1)
print(score2)
{
'数学': 90, '语文': 98}
{
'数学': 90, '英语': 89, '语文': 98}
添加元素
score1["政治"]=99
print(score1)
print(score2)
{
'数学': 90, '语文': 98, '政治': 99}
{
'数学': 90, '英语': 89, '语文': 98}
注意字典的拷贝属于浅拷贝,注意:区分浅拷贝和深拷贝的区别。
后续会补充到。
setdefault(key,value),注意:当key不存在时,会增加key和value的值到字典中,如果key值存在,则不会更新value值。
score1.setdefault("物理",88)
print(score1)
{
'数学': 90, '语文': 98, '政治': 99, '物理': 88}
score1.setdefault("物理",100)
print(score1)
集合是无序不重复的元素集合。集合用{}表示,用“,”进行分割。集合的创建方式,setname={ele0,ele1,ele2…}
set1={
'mon','tue','wen','tur','fri','sta','sun'}
print(set1)
用set函数进行创建
int(set1)
set2=set((1,2,3))
print(set2)
int(set1)
元素的添加,setname.add(obj)
set2.add(4)
print(set2)
另一种方法用setname.update(obj)
top=(5,6,7,8)
set2.update(top)
print(set2)
集合删除元素
set2.remove(7)
print(set2)
集合的用法:
1.元素去重
print(set2)
list0=[1,2,3,4,5,2,3,4,1,4,5]
set0=set(list0)
print(set0)
{
1, 2, 3, 4, 5}
2.求元素的差集。
list1=[1,2,3,4,5]
list2=[2,3,4,5,6]
set1=set(list1).difference(set(list2))
print(set1)
{
1}
3.求元素的交集,沿用上述例子。
set2=set(list1).intersection(set(list2))
print(set2)
{
2, 3, 4, 5}
4.求元素的并集,同样沿用上述例子。
set3=set(list1).union(set(list2))
print(set3)
{
1, 2, 3, 4, 5, 6}
%输出。
name='zhangsan'
age=22
print('%s %s '%(name,age)) #%s占位符
print('%o'%(20)) # %o 8进制
print('%d'%(20)) # % 10进制
print('%x'%(20)) # % 16进制
format()进行格式化输出,位置匹配
name='zhangsan'
age=22
print('{} {}'.format(name,age)) # {
}是占位符
print('{0} {1}'.format(name,age)) # 0,1代表位置
print('{1} {0}'.format(name,age))
在占位符处定义变量位置,变量匹配
print('{name} {age} {name} {age}'.format(name='李四',age=23)) # 在占位符处定义变量的位置
利用f-string的方式进行格式化输出
name='wangwu'
age=20
print(f'{name},{age}') # f-string的格式
主要整理了Python常见的数据类型的基本用法。