我是靠谱客的博主 耍酷棒球,最近开发中收集的这篇文章主要介绍python series拼接_3小时Python入门,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

119d7f127e5594188143ff48d2b50c0d.png

一,编程环境

推荐 Jupyter Notebook.

1,可以下载安装Anaconda 使用 jupyter notebook

2,也可以在和鲸社区的"工作台"直接使用jupyter notebook环境

和鲸社区 - Kesci.com​www.kesci.com

在jupyter notebook 中使用快键键 Ctrl+Enter 运行单元格cell中的代码。

《3小时Python入门》 网易云课堂视频地址:

https://study.163.com/course/introduction/1005839001.htm

二,算术运算

1+(100-20)/4+5*2   #四则运算


2**10  #乘方运算


7%5  #求模运算


7//5  #地板除法


import math


math.sin(pi/2)  #三角函数


abs(-1)


math.log(e) #对数函数

math.factorial(5) #阶乘

(1 + 2j) + (3 - 1j)

complex(2,1)/(2 - 1j)

math.factorial(1000) + 2**100

三,输入输出

输入:input

输出:print

#input 输入的都是字符串
weight = input('please input your weight:')

#利用float函数将字符串转换成浮点数
weight = float(input('please input your weight:'))
weight

# 利用eval函数将输入的字符串作为表达式进行计算
age = eval(input('please input your age:'))
age

# 输出用print
print('your weight is:',weight)

四,导入模块

import ...

或 from ... import ...

或 import ... as ...

### 以普通方式导入

import datetime
datetime.datetime.today()

### 导入模块中某个对象

from datetime import datetime
datetime.today()

### 导入模块中全部对象

from datetime import *
datetime.today()
date(2018,1,1)

### 以简写方式导入模块

import datetime as dt
dt.datetime.today()

五,语法规则

1,标识符

标识符由字母、数字、下划线组成,区分大小写,不能以数字开头。 以下划线开头的标识符有特殊含义。以单下划线开头的(_foo)的代表不能直接访问的类属性, 以双下划线开头的(foo)代表类的私有成员; 以双下划线开头和结尾的(foo)代表Python里特殊方法专用的标识, 如__init() 代表类的构造函数。

import numpy 
numpy.__version__

2,缩进

Python的代码块不使用大括号来控制类、函数、以及其他逻辑判断,而是使用缩进来写实现代码分组。通常用四个空格来进行缩进。

a,b = 1,2
if a>b:
    x = a
else:
    x = b
print(x)

3,注释

python中单行注释采用 # 开头。 多行注释使用三个单引号(''')或三个双引号(""")。

"""
author:Python_Ai_Road
date:2018-08-05
"""
def my_abs(x): #绝对值函数
    if x >= 0:
        return(x)
    else:
        return(-x)
    

4,一条语句分多行显示

Python语句中一般以新行作为为语句的结束符。 但是我们可以使用斜杠( )将一行的语句分为多行显示。 如果有{},[],()跨行则可以不使用

1+2+3+4+5+6+7+
7+8+9+10

a = [1,2,3,4,
    5,6,7,8]

5, 同一行显示多条语句

Python可以在同一行中使用多条语句,语句之间使用分号分割。

a=1;b=a+5

六,Python数据结构概述

python内建的数据结构有列表,元组,字符串,字典,集合等。

此外常用的还有numpy中的array,以及pandas中的dataframe和series。

1,有序数据结构:

list(列表),是有序集合,没有固定大小,可以通过对偏移量以及其他方法修改列表大小。列表的基本形式如:[1,2,3,4]

tuple(元组),是有序集合,是不可变的,可以进行组合和复制运算后会生成一个新的元组。元组的基本形式比如:(1,3,6,10)

str(字符串),也是有序集合,字符串的基本形式比如:’hello'。

l = [1,2,3,4]
print(l[0])
l[0] = 3
l

2,无序数据结构:

set(集合),是一个无序不重复元素的集。 基本功能包括关系运算和消除重复元素。集合的基本形式如: {'apple','orange','banana'}

dict(字典)是无序的键:值对 (key:value 对)的集合。 键必须是互不相同的(在同一个字典之内)。 字典的基本形式如:{'ICBC': 95588, 'BOC': 95566}

d = {'ICBC': 95588, 'BOC': 95566}
d['BOC']


七,列表

### 1,建立列表

fruits = ['apple','orange','banana']
a = list(range(1,11,2))
b = [2**i  for i in range(5)]
c = [[i+j for i in range(3)] for j in range(2)]
c


### 2,访问列表
# 列表支持下标访问和切片访问

print(a)
a[0]
a[-1]
a[-2]

a[0:3]
a[0:3:2]
a[0:]
a[:-2]


### 3,修改列表

a[0] = 0
a.remove(5)  #删除元素


del(a[0])
a

a + [1,2,3]  # +号对序列有拼接作用
a * 3  # *号有复制拷贝多份效果


### 4,列表常用函数

len(a)
max(a)
min(a)
sorted(a,reverse = True)


### 5,列表常用方法

a.extend([8,10])
a.append(11)
a.insert(0,1)
a

八,字典

字典在插入元素和查找元素方面很多时候比列表更加高效。

### 1,创建字典

d = {1:3,2:4,3:6}
a = dict([('a',1),['b',2]])
b = dict(x = 1,y = 2)

D = {i:i**2 for i in range(5)}

D

### 2,字典常用操作

a['a'] = 3
a['c'] = 5


a.keys()

a.values()

a.items()

a

a.update({'b':3,'d':10})
a

a.get('e',0)

a.setdefault('a',4)

a.setdefault('e',4)
a

a.copy()



九,字符串

### 1,创建字符串
s1 = 'I'm Jimmy.nI just use Python to say:"hello world"!'
print(s1)


s2 = "I'm Jimmy.nI just use Python to say:"hello world"!"
print(s2)

s3 = '''I'm Jimmy.
I just use Python to say:"hello world"!'''
print(s3)

s3

str(12345)

### 2,字符串拼接(+,join)

s1 = "I'm Jimmy."
s2 = "I love Python."
s3 = 'I just use Python to say:"hello world"!'

s = s1 + 'n' + s2 + 'n' + s3
print(s)

print('n'.join([s1,s2,s3]))


"abc" * 5

### 3,清洗字符串(replace,strip)

"$$$abcdef$$xyz".replace('$','')

"nabc123t".strip()

"Jimmyt18tmale".split('t')

### 4,格式化字符串(%或format)
age = 19
weight = 60.5
hobby = 'travelling'
# %d表示整数, %f表示浮点数, %s表示字符串

fs = "I'm %d years old. My weight is %.2f kg. I like %s" %(age,weight,hobby)
print(fs)


fs = "I'm {} years old. My weight is {:.2f} kg. I like {}" .format(age,weight,hobby)
fs


十,元组 tuple

# 1,创建元组
t = (1,2,3)
t0 = ()
t1 = (1,)
x = 1,2

y = tuple([1,2,3])
z = tuple('abc')

# 2,使用元组

t.count(1)
t.index(3)

#序列解包
a,b = 1,2
t1,t2,t3 = [1,2,3]

#元组可以作为字典key

d = {(1,2):4}


d

# 3,浅拷贝与深拷贝

t2 = t

l = [1,2,3]
l3 = l.copy() # 深拷贝开辟新的内存空间

l3[0] = 0

l3

l

l2 = l   #浅拷贝只是原来对象的一个别名。
l2[0] = 0

l2

l




十一,集合 Set

# 1,创建集合

s = {1,2,3}
s0 = set()

s3 = {x**2 for x in range(3)}

s3

# 2,使用集合

#去除重复对象,求交集,并集,补集等操作


a = [1,2,3,3,5,6,7,5,8,7]

len(set(a))


s1 = {1,2,3,6,7}
s2 = {2,5,8,10}


s1 & s2 #交集

s1 | s2 #并集

s1.difference(s2)  #广义补集


十二,条件语句if

### 1, if语句
a,b = 3,2

if a>b:
    x = a
else:
    x = b
    
#if...elif..elif...else...

y = a if a>b else b
y

### 2, 逻辑运算符

2>3
1+2<100
3 == 4-1
2 != 3

not 2==3

### 3, and和or

2>3 and 4<5
2>3 or 4<5

x = [] or [1,2,3] or {}  #短路计算,注意空字典和空列表为false
y = 50 and {1} and {3,4} 
y

bool(''),bool([1]),bool(-1)

十三,循环语句 for,while

# 1,for循环

l = [1,2,5,4,3]
for i in l:
    print(i)

d = {'a':1,'b':2,'c':3}
for k,v in d.items():
    print(k,':',v)   


#求 l中最大的元素
l = [1,2,5,4,3]
max(l)
max_l = l[0]
for i in l:
    max_l = i if i>max_l else max_l
print(max_l)


list(d.items())

# 2,while循环

#求1+2+3+...+100
s,i = 0,1
while i<=100:
    s = s + i
    i = i + 1
print(s,i)


# 3,循环控制continue,break

s = 'hello world'

# break跳出本层循环
for i in s:
    if i ==' ':
        break
    print(i,end = '')

print('n')

# continue跳出本次循环
for i in s:
    if i ==' ':
        continue
    print(i,end = '')



十四,函数

#1,函数参数:普通参数,默认参数,可变参数,关键字参数
#普通参数(位置参数)

def my_abs(x):
    return(x if x>=0 else -x)

my_abs(-5)
my_abs(x = 5)


#默认参数 n(参数缺失时赋默认值)

def my_power(x,n = 2):
    return(x**n)

my_power(5)
my_power(x = 5,n = 3)

#可变参数 *args(可以传入不定长度参数序列,元组或列表)

def my_sum(*args):
    s = 0
    for i in args:
        s = s + i
    return(s)
my_sum(1,2,3)
my_sum()
my_sum(*(1,2,3))
my_sum(*[1,2,3])



#关键字参数 **kv(可以传入字典)

def student(name,age,**kv):
    d = {'name':name,'age':age}
    d.update(kv)
    return(d)

student('LiLei',19,grade = '13',gender = 'male')
Jim = {'name':'Jim','age':18,'grade':'13','hometown':'London'}
student(**Jim)


#2,递归函数
#递归函数调用自身

def fib(n):
    if n in [1,2]:
        return(1)
    else:
        return(fib(n-1) + fib(n-2))
fib(20)

#3,装饰器

#装饰器在不更改函数代码前提下赋予函数额外的功能
#通常把函数非核心逻辑如插入日志、权限校验、性能测试放在装饰器中

import time
def runtime(func):
    def wrapper(*args,**kv):
        tic = time.time()
        ans = func(*args,**kv)
        toc = time.time()
        print('{} is called. {}s used'.
              format(func.__name__,toc-tic))
        return(ans)
    return(wrapper)


@runtime
def my_sum(*args):
    s = 0
    for i in args:
        s = s + i
    return(s)
# @runtime是一个语法糖
# 相当于 my_sum = runtime(my_sum)


my_sum(*range(100))

my_sum(1,2,3)  #相当于 runtime(my_sum)(1,2,3)

@runtime
def fib(n):
    if n in [1,2]:
        return(1)
    else:
        return(fib(n-1) + fib(n-2))
fib(4)


十五,lambda匿名函数

lambda只是一个表达式,适合定义较为简单的函数。

lambda函数的定义语法是:

fun = lambda 参数序列:返回值表达式

一般来说通过使用lambda匿名函数可以节约程序开支并加快运行速度。

my_abs = lambda x: x if x>=0 else -x
my_abs(-5)

my_power = lambda x,n=2:x**n
my_power(-5)

(lambda x,n=2:x**n)(-5,3)

my_sum = lambda *args:sum(args)
my_sum(1,2,3)

student = lambda name,age,**kv:dict(name = name,age = age,**kv)
student('LiLei',18,grade = '13')

d = {'name':'LiLei','age':18}
d.update({'grade':'13'})
d

type(d.update({'grade':'13'}))

fib = lambda n: 1 if n in [1,2] else fib(n-1)+fib(n-2)
fib(10)


十六,高阶函数

以函数为参数的函数叫做高阶函数。常用的内置高阶函数有:map,reduce,filter。

高阶函数和匿名函数搭配使用,堪称绝配。

# 1,map将一个函数作用到一个序列或者多个序列配对
#map英文单词原意:映射

list(map(lambda x:x**2,[1,2,3,4]))


list(map(lambda x,y:x+y,'abc','123'))



### 2,reduce 将一个带有两个参数的函数依次迭代作用到一个序列
#reduce英文单词原意:减少
#reduce(f,[a,b,c,d]) = f(f(f(a,b),c),d)

from functools import reduce
reduce(lambda x,y:x+y,[1,2,3,4])


### 3,filter 根据规则过滤序列中的元素
#filter英文单词愿意:过滤

list(filter(lambda x:x>0,[-1,-2,1,2]))



十七,Python推导式

Python中的推导式是我最喜爱的一类语法规则,没有之一。

Python推导式可以生成列表,字典和集合。

Python推导式虽然简单,但表达能力很强,可以实现map,filter等功能,并且可以多重遍历。

淋漓尽致地体现了Python语言的simple,readable,powerful的特点。

### 1,列表推导式

#生成平方数序列
[x**2 for x in range(4)]

#求序列的绝对值
l = [-1,-2,3,4,-2]
[x if x>0 else -x for x in l]

list(map(lambda x:x if x>0 else -x,l))

#过滤序列中某些元素
[x for x in l if x>0]
list(filter(lambda x:x>0, l))

#多重遍历
girls = ['Mary','Lily']
boys = ['Jim','John']
couples = [(b,g) for b in boys for g in girls]
couples




### 2,字典推导式

seasons = ['Spring','Summer','Autumn','Winter']
d = {k:v for k,v in enumerate(seasons,start = 1)} 
d

list(enumerate(seasons,start = 1))

keys = ['a','b','c']
values = [1,2,3]
D = {k:v for k,v in zip(keys,values)}
D



### 3,集合推导式

{abs(x) for x in [-1,-2,1,2,3]}

# 求两个集合的交集
a = {1,2,5,4}
b = {2,4,6,8}

a.intersection(b)

{x for x in a if x in b}



十八,类和对象

1,面向对象基本概念

  • 什么是面向对象编程?

POP: Process Oriented Programming. 程序被看成一系列命令的依次执行。基本封装形式为函数。 设计函数的基本要点是 IPO:输入Input ——> 处理Process ——> 输出Output.

OOP: Object Oriented Programming. 程序被看成一系列对象的相互作用。基本的封装形式是类。 设计类的基本要点是 RPM: 关系 Relation, 属性Property,方法 Method. 类和类之间常用的方法包括:is(继承关系), has(包含关系), use(使用关系)

  • 面向对象基本术语?

类: class, 抽象数据结构,数据和算法的封装。如:定义一个类:dog。

对象: object, 类的实例。如:dog类的一个实例:点点dot。

属性:properties,和对象关联的数据部分。如:weight 体重,breed 品种。

方法:methods,和对象关联的算法部分。如:run(), eat(), bark()。

  • 面向对象编程的优点?

容易使用: 封装,奇妙的句点符号。

容易扩展: 继承,多态。

### 2,创建类和对象

class Dog(object):
    
    def __init__(self,name,weight,breed,age):
        
        self.name = name
        self.weight = weight
        self.breed = breed
        
        # __age为私有属性
        self.__age = age
    
    def run(self):
        print('%s is running...'%(self.name))
        
    def bark(self):
        print('Bowwow,Bowwow,Bowwow...')
        
    def eat(self,food):
        print('%s is eating %s...'%(self.name,food))
        
    def sleep(self):
        print('Zzz...Zzz...Zzz...')
    
    # __think为私有方法
    def __think(self):
        print('I feel myself a hero and very handsome !')
        
    # speak公有方法可以调用私有方法
    def speak(self,words = ''):
        self.__think()
        if(words):print(words)
            
    






# 实例化一个对象

snoopy = Dog('snoopy',3,'Husky',4)

#调用公有属性和公有方法
snoopy.breed


snoopy.run()
snoopy.bark()
snoopy.eat('meat')
snoopy.sleep()
snoopy.speak('HaHaHa!!!')

#私有属性和私有方法不能够直接在类外部访问。
# snoopy.__age
# snoopy.__think()



### 3,获取对象信息

#python中万物皆对象

# type查看对象类别

type(1),type(False),type(snoopy),type(len),type([1,2,3])

# isinstance 测试某个对象是否属于某个类
isinstance({1,2,3},set)
isinstance(max,object)

# object是the most base type
print(isinstance(123,(list,str,float,int)))


十九,封装和继承

1,封装

奇妙的句点符号:通过奇妙的句点符号可以召唤对象的属性和方法。 私有属性和私有方法除外。

公有属性和公有方法: 无特定标识为共有属性和公有方法

私有属性和私有方法:以双下划线开头

定制属性和定制方法:以双下划线开头和双下划线结尾 例如: __init__ 构造函数,通过类名调用 __str__ 通过str函数调用 __len__ 通过len函数调用 ……

类属性和类方法:在__init__外部定义的为类属性, 第一个参数不是self参数的方法为类方法。

class Animal(object):
    
    #类属性
    home = 'earth'
    
    #类方法
    def dream():
        print('No deal, no hurt!')
        
    #定制方法
    def __str__(self):
        return('An animal named %s'%self.name)
        
    def __init__(self,name,weight,breed,age):
        
        self.name = name
        self.weight = weight
        self.breed = breed
        
        # __age为私有属性
        self.__age = age
    
    def run(self):
        print('%s is running...'%(self.name))
        
        
    def eat(self,food):
        print('%s is eating %s...'%(self.name,food))
        
    def sleep(self):
        print('Zzz...Zzz...Zzz...')
    
    # __think为私有方法
    def __think(self):
        print('I feel myself a hero and very handsome !')
        
    # speak公有方法可以调用私有方法
    def speak(self,words = ''):
        self.__think()
        if(words):print(words)
    
#类属性
snoopy = Animal('snoopy',3,'Husky',4)
snoopy.home
Animal.home

# 通过对象能够访问,但不能够修改类属性
#snoopy.home = 'moon'

# 类方法只能通过类名访问,不能通过对象访问
Animal.dream()

# 通过类名也可以访问对象方法
Animal.run(snoopy)

snoopy.run()

# 定制方法有特殊的功能
str(snoopy)

# 奇妙的句点符号

s = 'abc#123@def'

#面向过程必须记住非常多函数名,replace,upper,find

#面向对象只需要输入奇妙的句点符号后按下tab键
s.replace('#','').replace('@','')


len(s)

s.__len__()

dir(s) # 查看全部可用属性和方法

### 2,继承

#子类可以通过继承获得父类的属性和方法

class Cat(Animal):
    
    def call(self):
        print('MiaoMiaoMiao...')
   

kitty = Cat('kitty',1,'Bose',5)

kitty.call()

kitty.speak('miaow...miaow...miaow...')

二十,模块和包

一个.py文件就是一个模块。 一个包含有__init__.py文件的文件夹就是一个包。

1,模块示范

%%writefile mymodule.py
#!/usr/bin/env python3
#-*- coding:utf-8 -*-

'a test module'  #模块注释

__author__ = 'Python_Ai_Road' #作者信息
__version__ = 'v1.0' #版本信息

def _Email():   #模块私有函数
    print('lyhue1991@163.com')
    

def __WeChat_Official_Account():  #模块私有函数
    print('Python与算法之美')
    
    
def hello(person = 'world'): #公有函数
    print('hello',person)
    

def test(): #测试代码
    hello()
    hello('China')
    print('Contact to me:',end = 't')
    _Email()
    print('Learn more with me:', end = 't')
    __WeChat_Official_Account()
    

#当直接运行该模块时,执行测试代码,而引入模块时不执行测试代码。
if __name__ == '__main__':
    test()

import mymodule


help(mymodule)

mymodule.__author__

mymodule.__doc__

!python mymodule.py


2,包示范

!mkdir Animal

%%writefile Animal/__init__.py
#!/usr/bin/env python3
#-*- coding:utf-8 -*-

'Animal module for fun!'  #模块注释
__author__ = 'Python_Ai_Road' #作者信息

%%writefile Animal/Animal.py
class Animal(object):
    def __init__(self,name):
        self.name = name
        

%%writefile Animal/Dog.py
from Animal.Animal import Animal
class Dog(Animal):
    def call(self):
        print('bowwow...bowwow...bowwow...')


%%writefile Animal/Cat.py
from Animal.Animal import Animal
class Cat(Animal):
    def call(self):
        print('miaow...miaow...miaow...')


import Animal
help(Animal)

from Animal.Dog import Dog
snoopy = Dog('snoopy')
snoopy.call()

from Animal.Cat import Cat
kitty = Cat('kitty')
kitty.call()

最后

以上就是耍酷棒球为你收集整理的python series拼接_3小时Python入门的全部内容,希望文章能够帮你解决python series拼接_3小时Python入门所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部