python菜鸟教程基础入门
一、
- 可以使用’\'来连接多行。但是有括号的则不需要
a=b+\
c+\
d
a1=['a',
'b']
- 引号可以是单,双,三引号均可
二、
1. python有5个标准类型:数字,字符串,列表,元组,和字典
2. 字符串
- 获取某字符串的一段字符串可以使用[头下标,尾下标]
s='abcde'
s[1:5]
# 'bcde'
s+'rrr'#字符串加法
s
#bcderrr
3. 列表:Python中使用最频繁的类型
- 列表用
[]
标识,支持[]截取,从左开始从0,从右开始为-1。列表内部支持字符,数字,字符串,甚至包含列表 +
为连接操作,*
为输出n次
t=['a','b','c']
t1=[:1]
# t1=['a','b']
t2=['a',20,2.3,'name']
4. python元组
- 元组用()标识,内部元素用逗号分开,元组不能二次赋值,相当于只读列表
tuple1=('a',20,'name')
tuple1[1]=3300 #!!错误,不允许改变元组的值
5. python字典
- 是除列表外,最灵活的类型,字典可以通过键来存取。字典用
{}
来表示,由key和value组成
dict={}
dict['one']='I\'m one'
dict[2]='Two'
dict1={'name':'ruun','code':666,'dept':'sales'}
print(dict[2])# 'Two'
6. 数据类型转换
- 举例,其他类似
long(x)#x转换为长整数
str(x)#x转换为字符串
三、运算符
1.
%
:返回除法的余数 3%2 -> 1**
:返回x的y次幂 10**2 -> 100- ‘//’:返回商的整数部分 9//2 ->4
2.
- and,or,not 与,或,非
3. 判断是否在指定序列
- in
- not in
4. 身份运算符
- is #判断两个标识符是否引用自一个对象
- is not
a = 20
b = a
if ( a is b ):
print "1 - a 和 b 有相同的标识"
else:
print "1 - a 和 b 没有相同的标识"
if ( a is not b ):
print "2 - a 和 b 没有相同的标识"
else:
print "2 - a 和 b 有相同的标识"
# 修改变量 b 的值
b = 30
if ( a is b ):
print "3 - a 和 b 有相同的标识"
else:
print "3 - a 和 b 没有相同的标识"
if ( a is not b ):
print "4 - a 和 b 没有相同的标识"
else:
print "4 - a 和 b 有相同的标识"
#1 - a 和 b 有相同的标识
#2 - a 和 b 有相同的标识
#3 - a 和 b 没有相同的标识
#4 - a 和 b 没有相同的标识
四、
- python没有switch语句,判断多条需要elif;判断多个条件,可以使用or
if num>0 and num <10:
print('1')
elif num==0:
print('0')
五、循环语句
- while
while (c<5):
pass
else:
pass
- for
a=['a','b','c']
for i in a:
print(i)# 'a' 'b' 'c'
for i in range(len(a))
print(a[i])# 'a' 'b' 'c'
六、
- break,continue 语句与c++中作用相同,用于跳出循环
- pass语句为空语句,保持程序完整
七、字符串
- 字符串支持 in, not in 访问
- print输出时,格式化字符串或者数字
- 使用三引号,可实现所见即所得,不用再在内容内部使用转义字符
print ('I am %s and age is %d'%('Myy',18))
a='''I / % * '''
- %s-字符串
- %d-整数
- %c-字符
- %f-浮点数,可以指定小数点后精度
八 列表
利用append更新列表
del删除列表某元素
del list1[2]
支持in,not in操作
支持len()操作
list1[-1],表示倒数第一个元素
cmp(l1,l2)比较
len(l1)
max(l1)最大
min(l1)
list(seq)元组转为列表
list.append
list.count(obj)统计某个元素在list中出现次数
list.extend(seq)一次追加另一个序列的多个值
list.index(obj)找到该值并返回其索引
list.insert(index,obj)插入
list.pop[index=2])移除一个元素,默认是最后一个
list.remove(obj)移除某个值的第一个匹配项
list.reverse()反向表中元素
九、元组
- 元组与列表类似,不同之处在于元组不可修改,元组使用
()
,而列表用[]
- 元组中只包含一个元素时,需要在元素后面添加逗号。
tuple=(50,)
- 可以通过索引访问元组值,可以进行截取,组合,但是不能修改其中的值
- 元组的某一个值不可以删除,但是允许del语句删除整个元组
t1=('a',3,'aaa')
t2=(4,)
t3=t1[2] #'aaa'
t4=t1+t2 # 'a',a,'aaa',4
del t4
print(t4) #报错!!
- 元组的运算符:支持in 遍历;
len((1,2,3)) # 3
t1=(1,)+(3,4) # (1,3,4)
t2=('A')*4 #('A','A','A','A')
for x in t2: print(x)
- 元素截取
L=('spam','Spam','SPAM')
L[2] #'SPAM'
L[-2] #'Spam'
L[1:] #'Spam','SPAM'
- 元组内置函数
- cmp(t1,t2) #比较
- len(tuple)
- max(tuple) 返回最大值
- min(tuple)
- tuple(seq) 将列表转为元组
十、字典
- 字典值的访问,直接通过索引key
dict={'name':'Zara','Age':7,'Class':'First'}
print(dict['name'])
- 字典里的内容可以通过key索引修改
- 支持删除某一元素、清空字典、删除整个字典
dict={'Name':'nancy','Age':4,'Class':'First'}
del dict['Name'] #删除某一条目
dict.clear() #清空字典
del dict #删除字典
- 字典内置函数
- cmp(d1,d2)
- len(d1)
- str(d1) # 输出字典可打印的字符串表示
- type(variable) #返回输入的变量类型
- dict.copy()#返回一个字典的浅复制
- dict.has_key(key)#如果键在字典里返回true,否则返回false
- dict.items() #以列表返回可遍历的(键,值)元组数组
- dict.update(d2)# 将d2的值更新到dict中
- dict.values() #以列表返回一个字典所有的值
- dict.keys() #以列表返回一个字典所有的键
- pop(key[,defalut]) 删除字典给定键key所对应的值,返回被删除的值
- popitem() 返回并删除字典最后一对键合值
十一、时间和日期
- 这里只说操作,具体实现用到再看该链接
- 获取当前时间
- 获取格式化好的时间
- 自定义格式化时间
- 获取某月日历
import time
t=time.locatime(time.time())
print(t)
# time.struct_time(tm_year=2016, tm_mon=4, tm_mday=7, tm_hour=10, tm_min=3, tm_sec=27, tm_wday=3, tm_yday=98, tm_isdst=0)
....
十二、
1. python没有值传递或者引用传递的定义,但是可分 可变对象和不可变对象。python的列表和字典就是可变对象,在函数内部修改后,函数外部也会随着修改,其他诸如字符串,数字等则不可变
def f1(a):
a=110
def f2(list1):
list1.append([1,2,3])
b=0
list2=['a',1]
print(f1(b))# 0
print(f2(list2))#['a',1,1,2,3]
2.关键字参数,可以不按照顺序来传入参数,但要保持关键字相同
def f1(name,age):
print('name: ',name)
print('age: ',age)
f1(age=19,name='M')
# name: M
# age: 19
3.默认值参数,没有输入则打印默认值
def f1(age=30,name):
print('name:',name)
print('age:',age)
f1(name='miki')
# 'name:' miki
# 'age:' 30
f1(age=50,name='Zara')
# 'name:' Zara
# 'age:' 50
4.不定长列表或字符,数字等;不定长字典*args,**kwarg
def f1(name,*list):
print(name)
for i in list:
print(i)
a=['a','b','c']
f1(name='Zara',a)
f1(name='Amili',1,2)
#--------------
def f1(**kwarg):print(kwarg)
f1(x=1,y=3,name='A')
# {'x':1,'y':3,'name':'A'}
5.lambda表达式
- 基本语法:lambda[arg1,agr2,…]:expression
sum=lambda arg1,arg2:arg1+agr2
print(sum(10,20))#30
6. 全局变量和局部变量
- 注意定义的全局变量在函数内部变为,局部变量
total = 0 # 这是一个全局变量
# 可写函数说明
def sum( arg1, arg2 ):
#返回2个参数的和."
total = arg1 + arg2 # total在这里是局部变量.
print "函数内是局部变量 : ", total
return total
#调用sum函数
sum( 10, 20 )
print "函数外是全局变量 : ", total
十三、
import math
后,调用其中的函数时需要match.sum(1,2)
,加前缀- ‘from A import B’,使用同上
B(a,a)
orB.fun()
from A import*
, 一次将所有A中内容引入
十四、
1. 读取键盘输入raw_input()
、input()
两者区别就是input支持输入表达式进行计算
2. 文件的读写具体操作,用到时再参考该链接
str=raw_input("Input your words:")
print(str)
# Input your words: 111
# 111
str=('Input')
print(str)
# Input [x*4 for i in range(2)]
# [0,4]
十五、File操作
- open(file,mode=‘r’),必须搭配close();mode为打开模式
mode 参数有
- x: 写模式,新建一个文件,如果该文件已经存在,则报错
- +:打开文件,可读可写
- r:只读形式,文件中指针放在文件开头
- r+:读写文件,指针在文件开头
- w:只写,如果文件已存在,则打开,并从头开始编辑,原有内容会被删除。如果该文件不存在,创建新文件
- w+:读写,如果文件已存在,则打开,并从头开始编辑,原有内容会被删除。如果该文件不存在,创建新文件
- a:追加文件,指针在文件尾。文件不存在则创建
- a+:追加,可读可写,文件指针会在文件结尾
*…以及一些二进制形式处理的模式
- file常用函数
- f.flush() 刷新文件内部缓冲
- f.close() 关闭文件
- f.next() 返回文件下一行
- f.readline() 读取整行,包括’\n’
- f.readlines() 读取所有行,并返回列表
- f.tell() 返回文件当前位置
- f.writelines(sequences) 向文件写入一个序列字符串列表,需要自己手动加入每行的换行符
十六 python常用内置函数
abs()
绝对值divmod(a,d)
输出除法结果的商和余数enumerate()
将一个可遍历的数据对象,如列表,元组,组合为一个索引序列,同时给出数据和数据下标
>>>seq = ['one', 'two', 'three']
>>> for i, element in enumerate(seq):
... print i, element
...
0 one
1 two
2 three
math.pow()
求幂
import math
print(math.pow(3,0))# 1
print(math.pow(3,2))# 9
- map(fun,iterable)用法1,根据提供的函数对指定序列做映射
- map用法2,对某数据里的字符串进行字典式映射
# 1.
def f1(a):
a*4
list2=map(f1,[1,2,3,4])
list3=map(lambda x:x*4,[1,2,3,4])
list4=map(lambda x,y:x*y,[1,2,3,4],[2,2,2,3])
# list2=[4,8,12,16]
# list3=[4,8,12,16]
# list4=[2,4,6,12]
# 2.
MAP_SEX={'male':1,'female':0}
# Sex
# 0 male
# 1 female
data.map(MAX_SEX)
# Sex
# 0 1
# 1 0
eval()
执行一个字符串表达式,并返回表达式的值
x=7
eval('x*3')
>>21
zip
将可迭代的对象作为参数,将对象中的元素打包为一个个元组,返回元组组成的列表
a=[1,2,2]
b=[4,5,6]
z=zip(a,b)
#c=[(1,4),(2,5),(2,6)]
set
创建一个无序不重复元素集,可删除重复数据,还可进行交集,差集,并集操作等id()
返回对象的内存地址- 'sorted()'对列表内容进行排序,可以定义比较的规则
a=[3,4,1]
L=[('a',1),('c'.3),('e',0),('d',9)]
sorted(L,lambda x:x[1])#按照列表里的元素的第二个内容排序
#L=[('e',0),('a',1),('c'.3),('d',9)]
python菜鸟教程基础入门的更多相关文章
- 深度学习入门者的Python快速教程 - 基础篇
5.1 Python简介 本章将介绍Python的最基本语法,以及一些和深度学习还有计算机视觉最相关的基本使用. 5.1.1 Python简史 Python是一门解释型的高级编程语言,特点是简单明 ...
- SQLAlchemy 教程 —— 基础入门篇
SQLAlchemy 教程 -- 基础入门篇 一.课程简介 1.1 实验内容 本课程带领大家使用 SQLAlchemy 连接 MySQL 数据库,创建一个博客应用所需要的数据表,并介绍了使用 SQLA ...
- python菜鸟教程学习3:基础语法
菜鸟教程对应网址:https://www.runoob.com/python3/python3-basic-syntax.html 编码:python3用UTF-8编码,所有字符串都是unicode字 ...
- VS2013中Python学习笔记[基础入门]
前言 在上一节中简单的介绍了在VS2013中如何进行开发Hello World,在VS2013中进行搭建了环境http://www.cnblogs.com/aehyok/p/3986168.html. ...
- python菜鸟教程学习10:数据结构
列表方法 list.append(x):把一个元素添加到列表的结尾,相当于 a[len(a):] = [x]. list.extend(L):通过添加指定列表的所有元素来扩充列表,相当于 a[len( ...
- python菜鸟教程学习:数据结构
列表方法 list.append(x):把一个元素添加到列表的结尾,相当于 a[len(a):] = [x]. list.extend(L):通过添加指定列表的所有元素来扩充列表,相当于 a[len( ...
- 给深度学习入门者的Python快速教程 - 基础篇
实在搞不定博客园的排版,排版更佳的版本在: https://zhuanlan.zhihu.com/p/24162430 Life is short, you need Python 人生苦短,我用Py ...
- 给深度学习入门者的Python快速教程 - 基础篇(转)
原文:https://zhuanlan.zhihu.com/p/24162430 5.1 Python简介 本章将介绍Python的最基本语法,以及一些和深度学习还有计算机视觉最相关的基本使用. 5. ...
- Python学习之路【第一篇】-Python简介和基础入门
1.Python简介 1.1 Python是什么 相信混迹IT界的很多朋友都知道,Python是近年来最火的一个热点,没有之一.从性质上来讲它和我们熟知的C.java.php等没有什么本质的区别,也是 ...
随机推荐
- 【ACwing 93】【模版】非递归实现组合型枚举——模拟递归
(题面来自ACwing) 从 1~n 这 n 个整数中随机选出 m 个,输出所有可能的选择方案. 输入格式 两个整数 n,m ,在同一行用空格隔开. 输出格式 按照从小到大的顺序输出所有方案,每行1个 ...
- 码农飞升记-Java是什么?
1.Java概述 Java 原名 Oak 是 Sun Microsystems 公司的 James Gosling 及其团队于 1995 年 5 月推出的 Java 程序设计语言 和 Java 平台 ...
- JZOJ2020年8月14日提高组反思
JZOJ2020年8月14日提高组反思 T1 看到题 一脸:我是谁,我在哪,我要干啥 看到字符串凉一半 还有查询修改 想到线段树但不会建模 暴力安排 T2 一开始觉得:水题 然后啪啪打脸 空间小,数据 ...
- Python+moviepy音视频剪辑:视频帧数据的本质、Clip的fl方法进行变换处理的原理以及滚屏案例
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt+moviepy音视频剪辑实战 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一. ...
- PyQt(Python+Qt)学习随笔:QTreeWidgetItem项列图标的访问方法
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 树型部件QTreeWidget中的QTreeWidgetItem项中可以有多列数据,每列数据都可以设 ...
- PyQt(Python+Qt)学习随笔:Designer中不能编辑信号和槽的问题
新建了一个窗口部件,在窗口上添加了相关布局,再设置窗口窗口的布局为垂直布局,窗口设计好界面后如图所示: 可以看到窗口是QWidget类,窗口上从上到下有三个布局,窗口自身的布局为垂直布局,布局名为ve ...
- 将Java项目打包成exe文件
第一步:参照我之前的博客:利用IDEA把项目打包成jar包第二步:下载安装exe4j软件第三步:新建文件夹,把jre,exe文件的图标,本项目的jar包以及项目用到的jar包都放到同一目录下[很重要] ...
- 第二篇 Scrum 冲刺博客
一.站立式会议 1. 会议照片 2. 工作汇报 成员名称 昨日(23日)完成的工作 今天(24日)计划完成的工作 工作中遇到的困难 陈锐基 - 完成个人资料编辑功能- 对接获取表白动态的接口数据并渲染 ...
- js监测页面是否切换到后台
最近做个弹幕,用的是第三方的插件,在浏览器页面切换到后台,返回后发现数据有堆叠卡死的情况,如何解决这个问题?网上参考了些demo,大致可以实现 1.document.hidden( Boolean值, ...
- AcWing 362. 区间
听书上说有贪心 + 数据结构的做法,研究了一下. 朴素贪心 考虑把所有线段按照右端点 \(b\) 从小到大排序,依次考虑每一条线段的要求: 如果已经满足要求则跳过 否则尽量选择靠后的数(因为之后的线段 ...