交互式解释器

’ >>> ‘为提示符。

语句是用来告诉计算机他们应该做什么的指令。


模块

可以把模块理解为导入到Python中来增强其功能的扩展。需要用import命令导入。在导入模块之后,按照“模块.函数”的格式来使用这个模块中的函数。

  1. import math
  2. math.floor(32.9)

在确定自己不会导入多个同名函数(从不同的模块中导入)的情况下,可以用另一种格式来导入模块及调用函数。

  1. from math import sqrt
  2. sqrt(9)

另外,还可以对函数名再命名,然后调用相对应的变量名。

  1. foo=math.sqrt
  2. foo(4)

处理复数的模块为cmath

  1. import cmath
  2. cmath.sqrt(-1)

python序列

Python包含6中内建的序列,分别为:列表、元组、字符串、Unicode字符串、buffer对象、xrange对象。

列表和元组的主要区别在于,列表可以修改,元组则不能。

列表的各个元素通过逗号分开,写在方括号内,

  1. edward=['Edward Gumy',42]
  2. john=['John Smith',20]
  3. database=[edward,john]

python之中还有一种名叫容器(container)的数据结构。容器基本上是包含其他对象的任意对象。序列(6种)和映射(如字典)是两类主要的容器。序列的每个元素都有自己的编号,而映射中的每个元素则有一个名字(也称为键)。还有既不是序列也不是字典的容器,如集合(set).

索引提取

对于序列,可以通过索引一个一个的引用,索引编号从0开始,一次加1计数。也可以从最后一个元素起(-1)一次减一来计数。

  1. # 根据给定的年月日以数字的形式打印日期
  2. months = [
  3. 'January', 'February', 'March', 'April', 'May', 'June', 'July',
  4. 'August', 'September', 'October', 'November', 'December'
  5. ]
  6. # 以1-31的数字作为结尾的列表
  7. endings = ['st', 'nd', 'rd'] + 17 * ['th'] \
  8. + ['st', 'nd', 'rd'] + 7 * ['th'] \
  9. + ['st']
  10. year = input('Year: ')
  11. month = input('Month(1-12): ')
  12. day = input('Day(1-31): ')
  13. month_number = int(month)
  14. day_number = int(day)
  15. # 记得要将月份和天数减一以获得正确的索引号
  16. month_name = months[month_number - 1]
  17. ordinal = day + endings[day_number - 1]
  18. print(month_name + ' ' + ordinal + ', ' + year)

也可以使用分片操作来访问一定范围内的元素,分片通过冒号隔开的两个索引号来实现。注意分片操作时,第一个索引号在征引范围之内,第二个在征引范围之外。

  1. >>>number=[1,2,3,4,5,6,7,8,9,10]
  2. >>>number[3:6]
  3. [4,5,6]
  4. >>>number[0,1]
  5. 1
  6. >>>number[-3:]
  7. [8,9,10]
  8. >>>number[:3]
  9. [1,2,3]
  10. >>>number[:]
  11. [1,2,3,4,5,6,7,8,9,10]

python的分片步长隐含为1,但是可以自己设定。步长还可以是负数(但是不能为0),当步长为正数时,从头到尾安步长提取序列,为负数的时候从尾至头安步长提取序列。

  1. # 对http:\\www.something.com形式的URL进行分割
  2. url = input('Please enter the URL: ')
  3. domain = url[11:-4]
  4. print('Dominate name:'+domain)
  1. >>>number[1,2,3,4,5,6,7,8,9,10]
  2. >>>number[0:10:2]
  3. [1,3,5,7,9]
  4. >>>number[::-2]
  5. [10,8,6,4,2]

序列运算

  • 序列加法:加法运算可以将两个类型相同的序列连接
  • 序列乘法:用数字x乘以一个序列会生成一个新序列,在新序列中,原来序列被重复x次。
  1. >>>[1,2,3]+[4,5,6,7,8,9]
  2. [1,2,3,4,5,6,7,8,9]
  3. >>>[1,2,3]+'word'
  4. error...
  5. >>>[1,2,3]*5
  6. [1,2,3,1,2,3,1,2,3,1,2,3,1,2,3]

空列表

创建空列表有几种办法:

  • 简单的用两个括号表示([]),或者用[0]*10
  • 用python内建函数none来表示。none表示什么都没有的意思。
  1. # 以正确的宽度在居中的盒子内打印一个句子
  2. # 注意整数除法运算只能在Python2.2以及后续版本,在之前的版本中只能使用普通除法
  3. sentence = input('Sentence: ')
  4. screen_width = 80
  5. text_width = len(sentence)
  6. box_width = text_width + 6
  7. left_margin = (screen_width-box_width)//2
  8. print
  9. print(''* left_margin + '+' + '-'* (box_width-2) + '+')
  10. print(''* left_margin + '|' + ' '* text_width + '|')
  11. print(''* left_margin + '|' +sentence + '|')
  12. print(''* left_margin + '|' + ' '* text_width + '|')
  13. print(''* left_margin + '+' + '-'* (box_width-2) + '+')
  14. print

成员资格

为了检查一个元素是否属于某个序列,可以利用in运算符。该运算检查某个条件是否为真,然后返回相应的值:条件为真返回true,条件为假返回false。这样的运算叫做布尔运算,返回的值叫做布尔值

  1. database = [
  2. ['albert' ,'1234'] ,['dilbert' ,'4242'] ,['smith' ,'7524'] ,['joines' ,'9843']
  3. ]
  4. username = input('User name: ')
  5. pin = input('PIN code: ')
  6. if[username,pin] in database:print('Access granted')

长度、最大值、最小值函数

函数名 功能
len 返回序列中所包含元素的数量
min 返回序列中的最小值
max 返回序列中的最大值

列表

列表不同于元组和字符串的地方:列表的内容是可以改变的。

list和join函数

函数 功能
list 将字符串转化为序列
join 用来连接序列中的元素
  1. >>>list('Hello!')
  2. ['H','e','l','l','o','!']
  3. ''.join(somelist) # somelist是需要转换的列表。
  4. >>>dirs='','usr','bin','env'
  5. >>>'/'.join(dirs)
  6. '/usr/bin/env'
  7. >>>print('C:'+'\\'.join(dirs))
  8. C:\usr\bin\env

列表的基本操作包括:元素赋值、元素删除、分片赋值、列表方法。

  • 元素赋值:利用索引直接对对应元素赋值即可。
  • 删除元素:直接利用del函数删除。删除后,列表的元素相对应的减少。
  • 分片赋值:利用冒号运算符分片赋值,注意分片赋值时可以用不同长度的序列替换原来分片。也可以插入新元素,也可以用来删除某一部分的序列。
  1. >>>x=[1,1,1]
  2. >>>x[1]=2
  3. >>>x
  4. [1,2,1]
  5. >>>y=[1,2,3,4,5,6]
  6. >>>del y[2]
  7. >>>y
  8. [1,2,4,5,6]
  9. >>>name=list('perl')
  10. >>>name
  11. ['p','e','r','l']
  12. >>>name[2:]=list('ython')
  13. >>>name
  14. ['p','y','t','h','o','n']
  15. >>>name[1:3]=[]
  16. >>>name
  17. ['p','h','o','n']
  18. >>>name[1:1]=[1,2,3]
  19. >>>name
  20. ['p',1,2,3,'h','o','n']
  • 列表方法:方法是一个与某些对象紧密联系的函数,对象可能是列表、数字,也可能是字符串或者其他类型的对象。一般来说,方法可以这样调用:

对象.方法(参数)

针对于列表所提供的方法有:

方法 功能 备注
append 用于在列表末尾追加新的对象 直接修改原序列,而不是返回新序列
count 统计某个元素在列表中出现的次数
extend 可以在列表的某位一次性追加另一个序列中的多个值 extend修改原有列表,而join返回新列表
index 找出序列中某个值第一个匹配项的索引位置 如果该元素不在序列内,使用该方法会报错
insert 用于将对象插入列表中 可以使用分片赋值代替此功能
remove 移除列表中某个值的第一个匹配项 只是第一次出现的值被移除,不在列表中的值会出现报错
reverse 将序列中的值反向存放 该方法改变列表但是没有返回值
sort 在原位置对列表进行排序 该函数修改原序列,而不返回值。
pop 移除列表中指定的元素,并返回该元素 默认为最后一个

Python学习记录1的更多相关文章

  1. Python学习记录day6

    title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...

  2. Python学习记录day5

    title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...

  3. Python学习记录day8

    目录 Python学习记录day8 1. 静态方法 2. 类方法 3. 属性方法 4. 类的特殊成员方法 4.1 __doc__表示类的描述信息 4.2 __module__ 和 __class__ ...

  4. Python学习记录day7

    目录 Python学习记录day7 1. 面向过程 VS 面向对象 编程范式 2. 面向对象特性 3. 类的定义.构造函数和公有属性 4. 类的析构函数 5. 类的继承 6. 经典类vs新式类 7. ...

  5. Python学习记录:括号配对检测问题

    Python学习记录:括号配对检测问题 一.问题描述 在练习Python程序题的时候,我遇到了括号配对检测问题. 问题描述:提示用户输入一行字符串,其中可能包括小括号 (),请检查小括号是否配对正确, ...

  6. 实验楼Python学习记录_挑战字符串操作

    自我学习记录 Python3 挑战实验 -- 字符串操作 目标 在/home/shiyanlou/Code创建一个 名为 FindDigits.py 的Python 脚本,请读取一串字符串并且把其中所 ...

  7. 我的Python学习记录

    Python日期时间处理:time模块.datetime模块 Python提供了两个标准日期时间处理模块:--time.datetime模块. 那么,这两个模块的功能有什么相同和共同之处呢? 一般来说 ...

  8. Python 学习记录

    记录一些 学习python 的过程 -------------------------------------- 1. 初始学习 @2013年10月6日 今天开始学习python 了 遇到好多困难但是 ...

  9. python学习记录_IPython基础,Tab自动完成,内省,%run命令_

        这是我第一次写博客,之前也有很多想法,想把自己所接触的,以文本的形式储存,总是没有及时行动.此次下定决心,想把自己所学,所遇到的问题做个记录共享给诸位,与此同时自己作为备忘,感谢各位访问我的博 ...

  10. Python学习记录----数据定义

    摘要: 描述Python中数据定义格式,需要注意的东东. 一 数据声明 Python木有一般语言的具体数据类型,像char,int,string这些通通木有.这有点像javascript,但又不同,j ...

随机推荐

  1. SpringBoot2.0 整合 Swagger2 ,构建接口管理界面

    一.Swagger2简介 1.Swagger2优点 整合到Spring Boot中,构建强大RESTful API文档.省去接口文档管理工作,修改代码,自动更新,Swagger2也提供了强大的页面测试 ...

  2. Execution failed for task ':app:installDebug'.

    解决方案:重新起服务(react-native start),重新起项目(react-native run-android)

  3. linux定时任务报错mysql: command not found

    本人在用docker做镜像的时候,把定时任务打到镜像里,但是执行的时候发现错误日志总是报 sh: mysql: command not found ,然后开始解决问题 1)首先确认镜像有没有装mysq ...

  4. 蓝牙硬件交互数据传输Demo

    #import "ViewController.h" #import <CoreBluetooth/CoreBluetooth.h> @interface ViewCo ...

  5. 洛谷 P1067 多项式输出

    P1067 多项式输出 模拟,很坑的那种 var i,n:longint; a:array[1..105] of integer; begin readln(n); for i:=1 to n+1 d ...

  6. Jmeter----小技巧(3)

    1.关闭启动Jmeter时出现的面板 说明:启动Jmeter的同时往往会打开一个下图所示的面板,经常不小心关掉后,导致Jmeter停止运行,偶尔写了好久的脚本没来得及保存就没了,烦恼不已 怎样避免如上 ...

  7. Linux下Java运行.class文件,报错找不到或无法加载主类

    classpath配置的错误,所以找不到.class文件. 原先的etc/profile中的classpath配置 export CLASSPATH=$JAVA_HOME/lib/tools.jar ...

  8. [转]在C#中使用托管资源和非托管资源的区别,以及怎样手动释放非托管资源:

    托管资源指的是.NET可以自动进行回收的资源,主要是指托管堆上分配的内存资源.托管资源的回收工作是不需要人工干预的,有.NET运行库在合适调用垃圾回收器进行回收. 非托管资源指的是.NET不知道如何回 ...

  9. Idea 2017注册码

    BIG3CLIK6F-eyJsaWNlbnNlSWQiOiJCSUczQ0xJSzZGIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiI ...

  10. Spring下读取properties文件

    由于在spring的xml文件中配置了 <bean id="validator" class="org.springframework.validation.bea ...