最近发现自己语法基础捉急,从来没有系统学过python语法。 所以更新一份python基础语法查询大宝剑。
转载:https://blog.csdn.net/weixin_43838785/article/details/104530158
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
0次
1次
还可以在循环中添加一条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
查看评论