热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

牛客网系列---Python

判断语句if:print()elif:print()文件头部注释:#codingutf-8循环foriinrange(0,100):print("Item{0},{

判断语句

if ...:
print()
elif ...:
print()
文件头部注释:

#coding=utf-8

循环

for i in range(0,100):
print("Item {0},{1}".format(i,"Hello Python"))
函数
def sayHello():
print("Hello World")
def max(a,b):
if a>b:
return a
else:
return b
sayHello()
print(max(2,3))
面向对象

class Hello://定义一个类
def __init__(self,name): //构造方法
self._name=name
def sayHello(self):
print("Hello {0}".format(self._name))
class Hi(Hello): //类继承
def __init__(self,name):
Hello.__init__(self,name) //执行父类的构造方法
def sayHi(self):
print("Hi {0}".format(self._name))
h = Hello("jikexueyuan") //创建一个实例
h.sayHello()
h1=Hi("zhangSan")
h1.sayHi()
引入Python文件
建立一个mylib.py文件
class Hello:
def sayHello(self):
print("Hello Python")

import mylib
h=mylib.Hello()
h.sayHello()

from mylib import Hello
h=Hello()
h.sayHello()

Python语法基础

#常量的定义
import const
const.value = 5
print const.value
const.value=6 #error

单引号里面可以使用双引号,反之不可以;

单引号三引号可以换行,双引号三引号也可以;

#转义符
print ‘It\'s a dog!’
print "hello boy\nhello boy"

#自然字符串
print "hello boy\nhello boy"
print r"hello boy\nhello boy"

#字符串重复
print “hello”*20

#子字符串
#索引运算符从0开始索引
#切片运算符[a:b]是指从第a下标开始到第b-1下标。同样第一位的下标为0.
c1="jikexueyuan"
c2=c1[0]
c3=c1[7]
c4=c1[:2]
c5=c1[2:]
c6=c1[4:7]
print c6

Python中没有数组的概念,最接近的就是列表和元组;

#列表
students=["A","B","F","G","E","J"]
print students[3]
元组的元素也是进行索引计算,但是列表的元素的值是可以修改的,而元组里面的元素是不可以修改的,只能读取;
#元组
students=("A","B","F","G","E","J")
print students[3]
集合的功能:一是建立关系;二是消除重复元素;

#集合
a=set("abcdefghijkss")
b=set("cdfg")
#交集
x=a&b
print x
#并集
y=a|b
#差集
z=a-b
#去除重复元素
new=set(a)
字典也叫关联数组,key-value;
#字典
k={"姓名":"张三","籍贯":"北京"}
print k["籍贯"]
#添加字典里面的项目
k["爱好"]="音乐"
print k["姓名"]
print k["爱好"]


pickle腌制



行与缩进





Python核心编程基础教程之Python运算符、运算符优先级、表达式简介











控制流的结构:顺序结构、分支结构、循环结构;

if语句

while语句

for语句

break语句

continue语句


Python数据结构



   def out(st):
if st.Empty():
print "Stack is Empty"
else:
st.top=st.top-1

qu.head=qu.head+1

分治法、贪心法、穷举法、递归法、递推法、回溯法、动态规划法、迭代法、分支界限法;

快速排序算法:


基准数为第一个数;活动指针,交叉移动;

#快排的实现
def kp(arr,i,j):#快排总调用函数
if ibase = kpgc(arr,i,j)
kp(arr,i,base)
kp(arr,base+1,j)
def kpgc(arr,i,j):#快排排序过程
base = arr[i]
while iwhile i=base:
j-=1
while iarr[i] = arr[j]
i += 1
arr[j] = arr[i]
arr[i] = base
return i

ww = [2,1,5,2,4,9,5,6,4]
kp(ww,0,len(ww)-1)
print ww
选择排序算法:

#选择排序的实现
def xzpx(arr):#选择排序
for i in range(0,len(arr)):#每一趟排序
k = i#k是标志位
for j in range(i+1,len(arr)):#每一趟选择最小的这个数
if arr[j] k = j
print k
arr[i],arr[k] = arr[k],arr[i]#交换位置
二路归并排序算法:


#二路归并排序

def gb(arr):#第一次归并排序,以及持续调用rg()函数进行后续的归并排序
arr_t=[[arr[0]]]#把传进去的数组的元素变为数组的形式,因为后续需要使用到
k=0
m="'
if len(arr)%2==0:
l=len(arr)/2
for t in range(0,l):
m="h"+m
arr_rg=list(m)#生成一个存储数据的列表arr_rg,此列表长度为l
for i in range(1,len(arr)):
arr_t=arr_t+[[arr[i]]]#生成一个列表,该列表的元素变为列表,即两层列表,
#因为我们要调用后面的rg函数,该函数数据类型为列表
if len(arr_t)%2==0:#进行第一次归并排序,首先进行元素个数为偶数的情况
for i in range(0,len(arr_t,2)):#从第0位元素开始,每次增加2
arr_rg[k]=dg(arr_t[i],arr_t[i+1])#第i位与i+1位进行排列
k+=1
else:#若元素个数为奇数
for i in range(0,len(arr_t)-2,2):#循环部分先进行偶数位数部分的排序,跟%2==0情况一样
arr_rg[k]=dg(arr_t[i],arr_t[i+1])
k+=1
arr_rg[k]=arr_t[len(arr_t)-1]#偶数部分排完后,单出一位奇数位,直接将奇数位移到新存储数组arr_rg最后一位即可。
n=0


搜索算法:


def efss(arr,x):
i= 0
j = len(arr) - 1
for k in range(j/2+1):
if i>j:
print -1
zj = (i+j)/2#中间位置为i+j的和除以2
if arr[zj] == x:
return zj
elif arr[zj]>x:
j = zj-1
else:
i = zj+1

Python科学计算

numpy之ndarray对象;

numpy之ufunc运算;


numpy之矩阵运算;matrix


Python模块












Python类





推荐阅读
  • 这篇文章主要介绍了Python拼接字符串的七种方式,包括使用%、format()、join()、f-string等方法。每种方法都有其特点和限制,通过本文的介绍可以帮助读者更好地理解和运用字符串拼接的技巧。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • Python爬虫中使用正则表达式的方法和注意事项
    本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
  • IOS开发之短信发送与拨打电话的方法详解
    本文详细介绍了在IOS开发中实现短信发送和拨打电话的两种方式,一种是使用系统底层发送,虽然无法自定义短信内容和返回原应用,但是简单方便;另一种是使用第三方框架发送,需要导入MessageUI头文件,并遵守MFMessageComposeViewControllerDelegate协议,可以实现自定义短信内容和返回原应用的功能。 ... [详细]
author-avatar
鐘彦璋864175
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有