小言_互联网的博客

python【数据结构与算法】Python语法查询大宝剑(全)

457人阅读  评论(0)
最近发现自己语法基础捉急,从来没有系统学过python语法。 所以更新一份python基础语法查询大宝剑。

1 标准库

因为一些算法比赛只允许使用python的标准库,所以简单介绍以下。

1.1 math和cmath

这两个不用说,太常用了。

1.2 string


下面使用以下这些函数:
我就能记住这些,其实没什么用的。

以上方法输出:

1.3 random

random.randint() : 随机生成一个int类型的数,可以指定这个数的范围。


记住这一个就好了!

2 基础知识

2.1 用法演示(无输出)

###############################################################################################################
#!/usr/bin/env python
# coding: utf-8

# In[1]:


1/2


# In[5]:


5.0//2.4


# In[7]:


1//2


# 丢弃小数部分

# In[8]:


2.75%0.5


# python可以取余运算可以为小数

# In[9]:


2**3


# In[11]:


(-3)**2



# In[12]:


0xAF


# In[15]:


0o10


# In[14]:


0b1010111


# In[20]:


x=input()
y=input()
print(int(x)*int(y))


# In[21]:


if 1==1:
    print("yes")


# In[22]:


pow(2,3)


# In[23]:


abs(-10)


# In[24]:


round(2/3)


# In[25]:


import math as mt
mt.floor(32.9)


# 这是math模块里的一种类,尽量不要理解为函数。

# In[28]:


import math
math.ceil(32.3)


# In[29]:


from math import sqrt
sqrt(9)


# In[30]:


import cmath
cmath.sqrt(-1)


# In[31]:


import cmath
(1+3j)*(2+5j)


# cmath模块专门处理复数

# In[34]:


str="lixang"
a=len(str)
print(a)


# In[ ]:


###############################################################################################################

3 列表和元组

3.1 演示(无输出)

#!/usr/bin/env python
# coding: utf-8

# In[23]:


"python"*5


# In[24]:


[1]*10


# In[26]:


permissions="rw"
"r" in permissions


# In[34]:


numbers=[1,2,3]
max(numbers)


# In[36]:


names=["tom","jerry","jack"]
del names[1]
names


# In[38]:


list=[1,2,3]
list.append(4)
list


# In[39]:


list=[1,2,3]
list.clear()
list


# In[40]:


a=[1,2,3]
b=a 
b


# In[42]:


[1,2,3].count(3)


# In[44]:


a=[1,2,30]
b=[4,5,6]
a.extend(b)
a


# In[46]:


list=[1,2,"11"]
list.index(1)


# In[49]:


numbers=[1,2,3]
numbers.insert(2,"55")
numbers


# In[50]:


x=[1,2,3]
x.pop()
x.pop(0)


# In[51]:


x=[1,2,3]
x.append(x.pop())
x


# 这就实现了c中的push pop 栈和队列操作o

# In[52]:


x=[1,2,3]
x.remove(1)
x


# In[53]:


x=[1,23,3]
x.reverse()
x


# In[63]:


x={2:[1,2,3],1:[9,5,89]}
print(x.items())
print(x.keys())
print(x.values())
sorted(x.items(),key=lambda d:d[0])


# In[64]:


1,2,3


# 元组就是不可修改的列表,也是序列

# In[65]:


tuple("acv")


# In[ ]:





# In[ ]:





有一些函数百度的GPU环境不认识,换到命令行给大家看一下。


可以使用‘ ’.join(list)
但是我不知道为什么报错。。

给切片赋值:

name=list('perl')
print(name)
name[2:]=list('ar')
print(name)


高级排序:


sorted(d.items(), key=lambda x: x[1]) 中 d.items() 为待排序的对象;key=lambda x: x[1] 为对前面的对象中的第二维数据(即value)的值进行排序。 key=lambda 变量:变量[维数] 。维数可以按照自己的需要进行设置。
Python 字典 items()方法的简单解析与用法

dict = {'老大':'15岁',
        '老二':'14岁',
        '老三':'2岁',
        '老四':'在墙上'
        }
print(dict.items())
for key,values in dict.items():
    print(key + '已经' + values + '了')

输出:

dict_items([('老大', '15岁'), ('老二', '14岁'), ('老三', '2岁'), ('老四', '在墙上')])
老大已经15岁了
老二已经14岁了
老三已经2岁了
老四已经在墙上了了

4 使用字符串

4.1 演示(有输出)

>>> print("{you} and {me}".format(you="zhangsan",me="lisi"))
zhangsan and lisi
>>> print("{you}and{me}".format(you="zhangsan",me="lisi"))
zhangsanandlisi
>>> print("{you} and {me}".format(you="zhangsan",me="lisi"))
zhangsan and lisi
>>> print("name={},path={}".format("zhangsan","1"))
name=zhangsan,path=1
>>> print("{0}在{1}".format("lisi","watch"))
lisi在watch
>>> print("{1}在{0}".format("watch","lisi"))
lisi在watch
>>> print("{:>30@}".format("54"))
>>> print("{:@>30}".format("54"))
@@@@@@@@@@@@@@@@@@@@@@@@@@@@54
>>> print("{:.2f}".format(3.1545))
3.15
>>> print("{:b}".fromat(15))>>> print("{:b}".format(15))
1111
>>> print("{:o}".format(15))
17
>>> print("{:x}".format(15))
f
>>> print("{:d}".format(15))
15
>>> 


5 字典(映射结构)

5.1 字典结构

items=[(1,"1"),("2",2)]
d=dict(items)
print(d)

输出:

{1: '1', '2': 2}

5.2 基本的字典操作

items=[(1,"1"),("2",2)]
d=dict(items)
print(d)
print(len(d))
d[1]="11"
print(d)
del d["2"]
print("2" in d)

输出:

{1: '1', '2': 2}
2
{1: '11', '2': 2}
False

5.3 除此之外还有d.items(),d.values(),d.keys()

后两个返回一维列表

6 条件,循环及其他语句

6.1 基础语句

>>> print("age:",20)
age: 20
>>> print("hello",end="")
hello
>>> values=1,2,3
>>> values
(1, 2, 3)
>>> x,y,z=values
>>> x
1
>>> x=y=[1,2,3]
>>> z=[1,2,3]
>>> x is y
True
>>> x is not z
True

6.2 while循环

x=1
while x<=10:
    print(x)
    x+=1
    

6.3 for循环

words=["this","is","an","ex"]
for word in words:
    print(word)
for i in range(2):
    print("{}次".format(i))

输出:

this
is
an
ex
01

还可以在循环中添加一条else 自子句,他仅仅在没有调用break事才执行。

还要注意elif语句的使用。

6.4 列表推导

>>> [x*x for x in range(10)]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
>>> [x*x for x in range(10) if x%3==0]
[0, 9, 36, 81]
>>> [[x,y] for x in range(3) for y in range(3)]
[[0, 0], [0, 1], [0, 2], [1, 0], [1, 1], [1, 2], [2, 0], [2, 1], [2, 2]]

6.5 eval

eval计算用字符串表示的python表达式的值

>>> eval(input("shuru"))
shuru6+5
11

7 抽象的探索(方法)

7.1 递归

就和c语言一样,这里不做解释了

7.2 方法调用函数

直接上一个二分查找,自己理解。

def search(sequence,number,lower=0,upper=None):
    if upper is None:
        upper=len(sequence)-1
    if lower==upper:
        assert number==sequence[upper]
        return upper
    else:
        middle=(lower+upper)//2
        if number>sequence[middle]:
            return search(sequence,number,middle+1,upper)
        else:
            return search(sequence,number,lower,middle)
list1=[1,2,3,4,5,6,8,7]
list1.sort()
index=search(list1,8)
print(index)

输出为:7,二分查找成功。


转载:https://blog.csdn.net/weixin_43838785/article/details/104530158
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场