【Python】基础好用又不熟悉的语法

这是一篇关于Python基础知识的总结,内容过于基础的就没有写,主要是一些自己不太熟悉的语法总结,本文适合复习巩固Python基础。

注释

# 函数的文档注释
def func():
    """
    我是包含换行符\\n的文档注释
    直接回车换行
    可以用\'''也可以用\"""包括
    """
    return 0
# 打印函数注释
print(func.__doc__)
我是包含换行符\n的文档注释
直接回车换行
可以用'''也可以用"""包括   

单行注释用#

多行注释用'''或者"""

随机数

import random
# random.choice(seq),seq可以是一个列表,元组或字符串
print (random.choice(range(100)))
 
# 从 1-100 中选取一个奇数
print (random.randrange(1, 100, 2))

# 产生0-1之间的随机数
print(random.random())

# 随机产生一个5-10之间的实数
print(random.uniform(5,10))

# 产生0-100之间的随机整数
print(random.randint(0,100))

运行结果:

0
9
0.5606299188878712
6.332070251535839
22

字符串

# 字符串的格式化
name='Vigilr'
sex='男'
print('姓名:%s\n性别:%s'%(name,sex))

运行结果:

姓名:Vigilr
性别:男
符号 描述
%s 格式化字符串
%d 格式化整数
%u 格式化无符号整型
%o 格式化无符号八进制数
%x 格式化无符号十六进制数
%X 格式化无符号十六进制数(大写)
%f 格式化浮点数字,可指定小数点后的精度
%e 用科学计数法格式化浮点数
# 用"""表示多行字符串
str1="""我是第一行
我是第二行,此处为换行符\n
理论上,我是第三行
"""
print(str1)

运行结果:

我是第一行
我是第二行,此处为换行符

理论上,我是第三行

可以使用f'字符串'替换字符串中的变量,变量用{}括起来

f'姓名:{name}'

运行结果:

'姓名:Vigilr'

常用方法

扫描二维码关注公众号,回复: 11289972 查看本文章
# find(str, beg=0, end=len(string)),
# 检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1
print('name:vigilr'.find('vigilr'))

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

# isdigit(),如果字符串只包含数字则返回 True 否则返回 False..
print('123456'.isdigit())

# islower(),如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
print('islower()'.islower())

# isupper(),如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
print('isupper()'.isupper())

# join(seq),以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
print('-'.join(['hello','world','!']))

# len(string),返回字符串长度
print(len('len(string)'))

# lower(),转换字符串中所有大写字符为小写.
print('str.LOWER'.lower())

# upper(),转换字符串中的小写字母为大写
print('str.upper'.upper())

# max(str),返回字符串 str 中最大的字母。
print(max('max(str)'))

# split(str="", num=string.count(str)),num=string.count(str)) 以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num+1 个子字符串
print('split 方法 以空格截取 字符串'.split(' '))

运行结果:

5
True
True
False
hello-world-!
11
str.lower
STR.UPPER
x
['split', '方法', '以空格截取', '字符串']

列表

列表的基本用法

l=['a','b','c','d']
print('原始列表:',l)
l[2]='h'
print('修改后的列表:',l)
l.append('e')
print('增加后的列表',l)
del l[2]
print('删除索引为2的元素',l)

运行结果:

原始列表: ['a', 'b', 'c', 'd']
修改后的列表: ['a', 'b', 'h', 'd']
增加后的列表 ['a', 'b', 'h', 'd', 'e']
删除索引为2的元素 ['a', 'b', 'd', 'e']

列表的更加高级的用法

# list.count(obj)
print('l中a出现的次数',l.count('a'))

# list.index(obj),从列表中找出某个值第一个匹配项的索引位置
print(l.index('d'))

# list.insert(index, obj),将对象插入列表
l.insert(3,['a','c','v'])
print(l)

# list.remove(obj),移除列表中某个值的第一个匹配项
l.remove(['a','c','v'])
print(l)

# list.reverse(),反向列表中元素
l.reverse()
print(l)

# list.sort( key=None, reverse=False),对原列表进行排序l.sort()
l.sort()
print(l)

# list.copy(),复制列表
l1=l.copy()
print(l1)

# list.clear(),清空列表
l.clear()
print(l)

运行结果:

l中a出现的次数 1
2
['a', 'b', 'd', ['a', 'c', 'v'], 'e']
['a', 'b', 'd', 'e']
['e', 'd', 'b', 'a']
['a', 'b', 'd', 'e']
['a', 'b', 'd', 'e']
[]

元组与列表的操作基本类似,区别就是元组的元素不可修改

字典

dict1={'id':123456,'name':'Vigilr','sex':'男','age':23}
print(dict1)
# len(dict),计算字典元素个数,即键的总数。
print(len(dict1))
# str(dict),输出字典,以可打印的字符串表示。

运行结果:

{'id': 123456, 'name': 'Vigilr', 'sex': '男', 'age': 23}
4

通过dir(dict1)查询到的方法如下,

['clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']

个人不太常用字典,所以就不多做介绍了

集合

集合是一个无序的不重复元素序列。

可以使用大括号{}或者set()函数创建集合

创建一个空集合必须用set()而不是{},因为{}是用来创建一个空字典。

set1={'a','b','c','d'}
print('原始集合:',set1)

set1.add('e')
print('添加元素后的集合:',set1)

# 添加列表或元组中的元素
set1.update([1,2])
print('添加列表中的元素:',set1)

# 删除元素,不存在会发生异常
set1.remove('a')
print('删除"a"元素',set1)

# 随机删除一个元素
set1.pop()
print('随机删除一个元素',set1)

运行结果:

原始集合: {'b', 'd', 'a', 'c'}
添加元素后的集合: {'c', 'b', 'a', 'e', 'd'}
添加列表中的元素: {1, 2, 'c', 'b', 'a', 'e', 'd'}
删除"a"元素 {1, 2, 'c', 'b', 'e', 'd'}
随机删除一个元素 {2, 'c', 'b', 'e', 'd'}

迭代器,生成器

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

# 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。
list=[1,2,3,4]
it = iter(list)
print(next(it))
for x in it:
    print (x, end=" ")

运行结果:

1
2 3 4 

跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。

在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行。

def fibonacci(n):
    a, b, counter = 0, 1, 0
    while True:
        if (counter > n): 
            return
        yield a
        a, b = b, a + b
        counter += 1

f = fibonacci(10) 
 
for i in range(10):
    print (next(f), end=" ")

运行结果:

0 1 1 2 3 5 8 13 21 34 

匿名函数

lambda 函数的语法:lambda [arg1 [,arg2,.....argn]]:expression

# 可写函数说明
sub = lambda arg1, arg2: arg1 - arg2
 
# 调用sub减法函数
print ("1-1 的结果为 ", sub( 1 ,1 ))

运行结果:

1-1 的结果为  0

猜你喜欢

转载自blog.csdn.net/qq_42907802/article/details/106610166