03 Python基础
1.输出和输入
(1)print打印
Python 提供print方法来打印信息
输入:
print ("hello python")
调用print方法,用户双引号(" ")把需要打印的信息引起来就被输出了。
输入:
name = "zhangsan"
print "Hello %s, nice to meet you!" %name
%s(string)只能打印字符串,如果想打印数字,那么就要使用%d(data)
输入:
age = 27
print "You are %d!" %age
如果不知道自己要打印的是什么类型的数据,那么可以用%r来表示
输入:
n = 100
print "Your print is %r." %n
n = "abc"
print "Your print is %r." %n
(2)input输入
input_demo.py
n = raw_input("Enter any content: ")
print "Your input is %s" %n
使用input()方法比较矫情,输入字符串一定要加引号,如果不加会报错,因此我们可以使用raw_input()方法,用户输入什么就是什么。
- 引号与注释
Python中不区分单引号(' ')与双引号(" "),单双引号都可以表示一个字符串。
print "hello"
print 'world'
可以嵌套使用,但不能交叉使用。
Python的单注释用井号(#)表示。
多行注释用三对引号表示,不分单、双引号。
4.分支与循环
(1)通过if语句来实现分支判断,一般语法为if...else...。
输入:
a = 2
b = 3
if a > b:
print("a max!")
else:
print("b max!")
Python中if语句通过"=="运算符判断相等,"!="判断不相等,"in"和"not in"表示包含的关系,还可以进行布尔类型的判断。
输入:
student = "xiaoming"
if student == "xiaoming":
print("xiaoming, you are on duty today.")
else:
print("Please call xiaoming to duty.")
输入:
hi = "hello world"
if "hello" in hi:
print("Contained")
else:
print("Not contained")
输入:
a = True
if a:
print("a is True")
else:
print("a is not True")
if_demo.py
# coding=utf-8
results = 72
if results >= 90:
print('优秀')
elif results >= 70:
print('良好')
elif results >= 60:
print('及格')
else:
print('不及格') - 循环一般用for语句。
输入:
for i in "Hello, world!":
print(i)
对字典进行遍历,输入:
fruits = ['banana', 'apple', 'mango']
for fruit in fruits:
print(fruit)
循环数字要借助range()函数。
输入:
for i in range(5):
print(i)
range(start,end,scan):start表示开始的位置,end表示结束的位置,scan表示每一次循环的步长。
输入:
for i in range(1, 10, 2):
print(i)
4.数组与字典
(1)数组
用中括号[]表示,里面的每一个元素用逗号(, )隔开。数组下标从0开始。
输入:
lists = [1, 2, 3, 'a', 5]
lists
lists[0]
lists[4]
lists[4] = 'b'
lists[4]
lists.append('c')
lists
- 字典
用花括号{}表示,里面的元素是成对出现的,一个key对应一个value;一对元素用冒号(: )分割;不同元素用逗号(,)分开。
输入:
dicts={"username": "zhangsan", 'password': 123456}
dicts.keys()
dicts.values()
['zhangsan', 123456]
dicts.items()
[('username', 'zhangsan'), ('password', 123456)]
for k, v in dicts.items():
print("dicts keys is %r " %k)
print("dicts values is %r " %v)
字典里的每一对元素准确的来说是键值对,一个键(key)对应一个值(value)。Keys()函数可以输出所有键的值;values()函数可以输出所有值的值;items()函数输出一对键值对的值。
5.函数与类、方法
(1)函数
在python当中通过def关键字来定义函数,下面来定义一个函数.
输入:
def add(a, b):
print(a + b)
add(3, 5)
创建一个add(),这个函数接收两个参数a、b,通过print打印a+b的结果。通常情况下,函数不会直接打印结果,而是将处理结果通过return关键字返回。
输入:
def add(a, b):
return a + b
add(3, 5)
有时候调用add()函数的时候不想传参,可以为函数设置默认参数。
输入:
def add(a = 6, b = 7):
return a + b
add()
add(3, 5)
(2)类与方法
在Python中用class关键字来创建类。
class_test1.py
class A(object):
def add(self, a, b):
return a + bcount = A()
print count.add(3, 5)创建了一个A()类,在类下面创建了一个add()方法。方法创建同样适用关键字def,唯一不同的是方法必须有一个且必须是第一默认参数self,但是这个参数不用传值。
一般在创建类时首先会声明初始化方法__int__()。
class_test2.py
class A():
def __init__(self, a, b):
self.a = int(a)
self.b = int(b)
def add(self):
return self.a + self.bcount = A('4', 5)
print count.add()调用A类时首先执行__int__()方法,所以需要对其进行传参。初始化就是将输入的参数类型转化为int类型。add()方法直接对初始化得到的self.a和self.b进行计算,因此在调用A类下add()方法时不需要再进行传参。
类的继承——class_test3.py
class A():
def add(self, a, b):
return a + bclass B(A):
def sub(self, a, b):
return a - bprint B().add(4, 5)
因为B类继承了A类,所以B类也拥有了add()方法,可以直接通过B类调用add()方法
6.模组
(1)引用模块
在Python语言中通过import...或from...import...的方式引用模块,下面引用time模块。
imp1.py
import time
print time.ctime()如果只用到time模块下面的ctime()方法,可以这样使用:
imp2.py
from time import ctime
print ctime()[python] view plain copy 在CODE上查看代码片派生到我的代码片
from time import ctime
print ctime()
一次性把time模块下面的所有方法都引进来:
imp3.py
#coding=utf-8
from time import *
print ctime()
print "休息一两秒"
sleep(2)
print ctime()(2)模块调用
我们可以自己创建一个模块,然后通过另一个程序调用。
创建一个目录(project1),在目录下面创建两个文件:pub.py和count.py,在pub.py中创建一个add()函数。
project1\pub.py
def add(a, b):
return a + bproject1\count.py
from pub import add
print add(4, 5)这样就实现了跨文件的函数调用。
知识延伸:
在project1目录下面多了一个pub.pyc文件,pyc文件是一种二进制文件,是由py文件经过编译后生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,由python的虚拟机来执行。
(3)跨目录模块调用
调用文件和被调用的文件不在同一目录下面,调用目录如下:
----project2/model/pub.py
----project2/count.py
project2\count.py
import sys
sys.path.append('.\model')
from model import pub
print pub.add(3, 5)调用sys模块,把model目录通过append()方法追加到系统环境变量path下面。注意,".\model"是一个相对路径,如果pub.py在别的目录下面,就需要用绝对路径了,如:append(r"D:\\project\\model")
在model目录下面创建一个__init__.py的文件,内容可以为空。这个文件告诉python model是一个可以被调用的模块。现在就可以正常运行了。
运行count.py:
(4)进一步讨论跨目录模块调用
下面进行多个文件跨目录之间的调用。在project3目录下放入test.py,project3\model子目录下面放入count.py、new_count.py。
model/count.py
class A():
def add(self, a, b):
return a + bmodel/new_count.py
from count import A
class B(A):
def sub(self,a, b):
return a - bresule = B().add(2, 5)
print resule运行new_count.py:
在model目录下面创建一个为空的__init__.py的文件。
test.py
import sys
sys.path.append('.\model')
from model import new_counttest = new_count.B()
test.add(2, 5)运行输出如下:
7.异常
Python用异常对象(exception object)来表示异常情况。遇到错误后,会引发异常。如果异常对象未被处理或捕捉,程序会用所谓的回溯(Traceback,一种错误信息)终止执行。
- 认识异常
Python提供try..except..语句来接收这个异常。
输入:open("abc.txt",'r')
抛出一个IOError异常。
abnormal1.py
# coding=utf-8
try:
open("abc.txt",'r')
except IOError:
print "异常了!"
abnormal2.py
# coding=utf-8
try:
print(aa)
except IOError:
print "异常了!"
运行报错:
抛出一个NameError异常,如下修改该程序。
abnormal3.py
# coding=utf-8
try:
print(aa)
except NameError:
print "这是一个name异常!"
在python中所有的异常都继承Exception,所以可以用它来接收所有的异常。
abnormal4.py
# coding=utf-8
try:
open("abc.txt",'r')
except Exception:
print "异常了!"
从python2.5版本之后,所有异常类有了新的基类BaseException,Exception同样也继承BaseException,所以我们也可以使用BaseException来接收所有的异常。
Python直接输出异常信息:
abnormal5.py
# coding=utf-8
try:
open("abc.txt",'r')
print(aa)
except BaseException:
print "异常了
在BaseException后面可以定义msg变量用于接收异常信息,通过print将其打印出来:
abnormal6.py
# coding=utf-8
try:
open("abc.txt",'r')
print(aa)
except BaseException as msg:
print msgPython中常见的异常:
BaseException 新的所有异常类的基类
Exception 所有异常类的基类,但继承BaseException 类
AssertionError assert 语句失败
AttributeError 试图访问一个对象没有属性
IOError 输入输出异常,试图打一个不存的文件(包括其它情况)时引起
NameError 使用一个还未赋值对象的变量
IndexError 在使用序列中不存在的所引进引发
IndentationError 语法错误,代码没有正确的对齐
KeyboardInterrupt Ctrl+C 被按下,程序被强行终止
TypeError 传入的对象类型与要求不符
SyntaxError Python 代码逻辑语法出错,不能执行
(2)更多异常用法
try...except 与else 配合使用:
abnormal7.py
# coding=utf-8
try:
print(aa)
except Exception as msg:
print msg
else:
print ("没有异常")else语句只有在没有异常的情况下才会被执行,但是有些情况下不管是否出现异常这些操作都能被执行,比如文件的关闭,所得释放,把数据库连接返还给连接池等操作。我们可以使用try…finally..语句来完成。
abnormal8.py
# coding=utf-8
try:
print(aa)
except Exception as e:
print e
finally:
print ("不管是否异常,我都会执行。")修改代码,定义变量aa,如下:
abnormal9.py
# coding=utf-8
try:
aa = "异常测试:"
print(aa)
except Exception as e:
print e
finally:
print ("不管是否异常,我都会执行。")(3)抛出异常
Python中提供raise方法来抛出一个异常。
abnormal10.py
# coding=utf-8
from random import randint
#生成一个1到9之间的随机整数
number = randint(1,9)if number % 2 == 0:
raise NameError("%d is even" % number)
else:
raise NameError("%d is odd" % number)
03 Python基础的更多相关文章
- Day 03 Python 基础
目录 Pycharm 的使用 设置 快捷键 变量 什么是变量 定义变量 变量名的命名规则 变量名的两种命名方式 注释 快捷键(快速注释) 单行注释 多行注释 注释的作用 Turtle库的使用 Pych ...
- 03 python基础作业(一)
1.将['alex','eric',’rain’]用下划线拼接成字符串.(['alex','eric',123]呢?) li=['alex','eric','rain'] v='_'.join(li) ...
- python基础——错误处理
python基础——错误处理 在程序运行的过程中,如果发生了错误,可以事先约定返回一个错误代码,这样,就可以知道是否有错,以及出错的原因.在操作系统提供的调用中,返回错误码非常常见.比如打开文件的函数 ...
- python基础——获取对象信息
python基础——获取对象信息 当我们拿到一个对象的引用时,如何知道这个对象是什么类型.有哪些方法呢? 使用type() 首先,我们来判断对象类型,使用type()函数: 基本类型都可以用type( ...
- python基础——使用模块
python基础——使用模块 Python本身就内置了很多非常有用的模块,只要安装完毕,这些模块就可以立刻使用. 我们以内建的sys模块为例,编写一个hello的模块: #!/usr/bin/env ...
- Python 基础练习
今天接触了python,了解了一下 python 的基础语法,于是想着手训练一下,在本习题集中,参考代码为提供的参考答案,前面的代码为自己思考的代码,最后每道题给出练习的时间. Python 基础练习 ...
- 第一篇:python基础
python基础 python基础 本节内容 python起源 python的发展史 为什么选择python3 第一个python程序 变量定义 表达式和运算符 用户输入 流程控制 判断 流程控制 ...
- Day3 - Python基础3 函数、递归、内置函数
Python之路,Day3 - Python基础3 本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8. ...
- python基础教程
转自:http://www.cnblogs.com/vamei/archive/2012/09/13/2682778.html Python快速教程 作者:Vamei 出处:http://www.cn ...
随机推荐
- OpsManage安装过程中遇到的问题和解决方案
系统地址:https://github.com/welliamcao/OpsManage 系统:ubuntu ubuntu使用apt-get进行自动化安装 自带python2.7,不需要再次安装 1. ...
- ie中兼容性问题
由于项目要要兼容到ie8原本没有问题的代码一但用ie8打开js的报错找不到对象就都来了,其实总结起来就是ie越老的版本就越多方法名识别不到,那就少什么方法添加什么,比如说我的项目就要引入<scr ...
- Linux 上的Tomcat配置输入域名直接访问项目
申请的域名备案通过了,域名是在阿里云上面的买的,一块钱,当初买服务器是买着来玩玩的. 既然申请的域名已经备案通过了,也配置了域名解析 ,服务器上也装了Tomcat,部署了web项目,下面来配置下通过域 ...
- BFS,优先队列优化
题意: 'S' : 起点 'T' : 终点 '#' : 毒气室 'B' :氧气 'P':不消耗步数 每次经过毒气室需要一瓶氧气,氧气可以重复获得,但只能带五瓶氧气,问最少步数 solution: HI ...
- P1115 最大子段和&P1719 最大加权矩形
上接:DP&图论 DAY 1 上午 这两个题本质是一个亚子,所以放一起啦 DPDPDPDPDPDPDPDP P1115 最大子段和 题解 因为题目要求的是一段连续的区间,所以前缀和搞暴力??? ...
- [转]Nginx配置信息详解
序言 Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的.从2004年发布至今,凭借开源的力量,已经接近成熟与完善. Nginx功能丰富,可作为HTTP服务器,也 ...
- MybatisUtil工具类的作用
1)在静态初始化块中加载mybatis配置文件和StudentMapper.xml文件一次 2)使用ThreadLocal对象让当前线程与SqlSession对象绑定在一起 3)获取当前线程中的Sql ...
- Oracle Database的基本概念
一个 Oracle 服务器:是一个关系数据库管理系统(RDBMS),它提供全面的, 近乎完整的信息管理由Oracle 实例和Oracle 数据库组成Oracle 数据库 和 Oracle 实例Orac ...
- ZeroMQ——一个轻量级的消息通信组件 C#
ZeroMQ——一个轻量级的消息通信组件 ZeroMQ是一个轻量级的消息通信组件,尽管名字中包含了"MQ",严格上来讲ZeroMQ并不是"消息队列/消息中间件" ...
- centos6 安装docker
docker 安装要求内核大于3.10 , 而centos6 机器上内核一般是2.6 , 除了升级内核外, 还可以安装低版本的docker , 本文介绍docker 1.7的安装. 机器 环境 [ro ...