python笔记(基础)

别说谁变了你拦得住时间么 提交于 2020-01-30 02:46:45

2020.1.29 最近做了性能测试之后就没怎么具体编过程,现在是春节,但是因为疫情的原因,上班推迟,天天在家挺空闲的,所以决定温习一下。

1、字符串常用函数

https://www.runoob.com/python3/python3-string.html

计算字符出现次数:s = "我叫陈威".count('陈', 0, 3)   指定开始和结束下标

endswith(suffix, beg=0, end=len(string))
检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.

find(str, beg=0, end=len(string))
检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1

index(str, beg=0, end=len(string))
跟find()方法一样,只不过如果str不在字符串中会报一个异常.

replace(old, new [, max])
把 将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次。

strip([chars])

在字符串上执行 lstrip()和 rstrip()

2、列表:

https://www.runoob.com/python3/python3-list.html

l = [1, 2, 3]
l.reverse() #元素反转
l.clear() #清空列表
l.append(4) #追加元素

 

3、元组

元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用:

4、字典 https://www.runoob.com/python3/python3-dictionary.html

定义:d = {key1 : value1, key2 : value2 }  #键必须是唯一的,但值则不必。

主要操作:

dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
 
del dict['Name'] # 删除键 'Name'
dict.clear()     # 清空字典
del dict         # 删除字典

 

radiansdict.items()  #返回字典中的项

radiansdict.values() #返回字典中的值

radiansdict.keys() #返回字典中的key

遍历:

for k, v in dict.items():
    print(k ,':', v)

字典键的特性
字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。

两个重要的点需要记住:

1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:

实例
#!/usr/bin/python3
 
dict = {'Name': 'Runoob', 'Age': 7, 'Name': '小菜鸟'}
 
print ("dict['Name']: ", dict['Name'])
以上实例输出结果:

dict['Name']:  小菜鸟
2)键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行,如下实例:

实例
#!/usr/bin/python3
 
dict = {['Name']: 'Runoob', 'Age': 7}
 
print ("dict['Name']: ", dict['Name'])

5、集合

集合(set)是一个无序的不重复元素序列。可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

6、for语句:

sites = ["Baidu", "Google","Runoob","Taobao"]
for site in sites:
    if site == "Runoob":
        print("菜鸟教程!")
        break
    print("循环数据 " + site)
else:
    print("没有循环数据!")
print("完成循环!")

如果for循环正常结束,else中语句执行。如果是break的,则不执行

7、range():

for i in range(5):  #0 - 5序列
    print(i)

for i in range(5, 10): #5 - 10序列
    print(i)

for i in range(11, 20, 2): #步长为2
    print(i)

8、迭代器

迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。

迭代器有两个基本的方法:iter() 和 next()

字符串,列表或元组对象都可用于创建迭代器:

9、函数

传不可变对象和可变对象区别:

(1)传整型等不可变对象,对其进行修改,值不会变

def ChangeInt( a ):
    a = 10
 
b = 2
ChangeInt(b)
print( b ) # 结果是 2

(2)传入list等可变对象,即使不返回,对象也被修改

def changeme( mylist ):
   "修改传入的列表"
   mylist.append([1,2,3,4])
   print ("函数内取值: ", mylist)
   return
 
# 调用changeme函数
mylist = [10,20,30]
changeme( mylist )
print ("函数外取值: ", mylist)

调用函数时,如果没有传递参数,则会使用默认参数。

#可写函数说明
def printinfo( name, age = 35 ):
   "打印任何传入的字符串"
   print ("名字: ", name)
   print ("年龄: ", age)
   return
 
#调用printinfo函数
printinfo( age=50, name="runoob" )
print ("------------------------")
printinfo( name="runoob" )

不定长参数

(1)加了星号 * 的参数会以元组(tuple)的形式导入,存放所有未命名的变量参数。

# 可写函数说明
def printinfo( arg1, *vartuple ):
   "打印任何传入的参数"
   print ("输出: ")
   print (arg1)
   print (vartuple)
 
# 调用printinfo 函数
printinfo( 70, 60, 50 )

(2)加了两个星号 ** 的参数会以字典的形式导入。

def printinfo( arg1, **vardict ):
   "打印任何传入的参数"
   print ("输出: ")
   print (arg1)
   print (vardict)
 
# 调用printinfo 函数
printinfo(1, a=2,b=3)

匿名函数

lambda 函数的语法只包含一个语句。 lambda [arg1 [,arg2,.....argn]]:expression

# 可写函数说明
sum = lambda arg1, arg2: arg1 + arg2
 
# 调用sum函数
print ("相加后的值为 : ", sum( 10, 20 ))
print ("相加后的值为 : ", sum( 20, 20 ))
 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!