Python语句、函数与方法的使用技巧总结

Python语句、函数与方法的使用技巧总结
Python语句、函数与方法的使用技巧总结

Python语句、函数与方法的使用技巧总结

显示有限的接口到外部

当发布python第三方package时,并不希望代码中所有的函数或者class可以被外部import,在__init__.py中添加__all__属性,该list中填写可以import 的类或者函数名,可以起到限制的import的作用,防止外部import其他函数或者类。

#!/usr/bin/env python

# -*- coding: utf-8 -*-

from base import APIBase

from client import Client

from decorator import interface, export, stream

from server import Server

from storage import Storage

from util import (LogFormatter, disable_logging_to_stderr,

enable_logging_to_kids, info)

__all__ = ['APIBase', 'Client', 'LogFormatter', 'Server',

'Storage', 'disable_logging_to_stderr', 'enable_logging_to_kids',

'export', 'info', 'interface', 'stream']

with的魔力

with语句需要支持上下文管理协议的对象,上下文管理协议包含__enter__和__exit__两个方法。with语句建立运行时上下文需要通过这两个方法执行进入和退出操作。

其中上下文表达式是跟在with之后的表达式,该表达式返回一个上下文管理对象。

# 常见with使用场景

with open("test.txt", "r") as my_file: # 注意, 是__enter__()方法的返回值赋值给了my_file,

for line in my_file:

print line

知道具体原理,我们可以自定义支持上下文管理协议的类,类中实现__enter__和__exit__方法。

#!/usr/bin/env python

# -*- coding: utf-8 -*-

class MyWith(object):

def __init__(self):

print "__init__ method"

def __enter__(self):

print "__enter__ method"

return self # 返回对象给as后的变量

def __exit__(self, exc_type, exc_value, exc_traceback): print "__exit__ method"

if exc_traceback is None:

print "Exited without Exception"

return True

else:

print "Exited with Exception"

return False

def test_with():

with MyWith() as my_with:

print "running my_with"

print "------分割线-----"

with MyWith() as my_with:

print "running before Exception"

raise Exception

print "running after Exception"

if __name__ == '__main__':

test_with()

执行结果如下:

__init__ method

__enter__ method

running my_with

__exit__ method

Exited without Exception

------分割线-----

__init__ method

__enter__ method

running before Exception

__exit__ method

Exited with Exception

Traceback (most recent call last):

File "bin/python", line 34, in

exec(compile(__file__f.read(), __file__, "exec"))

File "test_with.py", line 33, in

test_with()

File "test_with.py", line 28, in test_with

raise Exception

Exception

证明了会先执行__enter__方法, 然后调用with内的逻辑, 最后执行__exit__做退出处理, 并且, 即使出现异常也能正常退出

filter的用法

相对filter而言,map和reduce使用的会更频繁一些,filter正如其名字,按照某种规则过滤掉一些元素。

#!/usr/bin/env python

# -*- coding: utf-8 -*-

lst = [1, 2, 3, 4, 5, 6]

# 所有奇数都会返回True, 偶数会返回False被过滤掉

print filter(lambda x: x % 2 != 0, lst)

#输出结果

[1, 3, 5]

一行作判断

当条件满足时,返回的为等号后面的变量,否则返回else后语句。

lst = [1, 2, 3]

new_lst = lst[0] if lst is not None else None

print new_lst

# 打印结果

1

装饰器之单例

使用装饰器实现简单的单例模式

# 单例装饰器

def singleton(cls):

instances = dict() # 初始为空

def _singleton(*args, **kwargs):

if cls not in instances: #如果不存在, 则创建并放入字典

instances[cls] = cls(*args, **kwargs)

return instances[cls]

return _singleton

@singleton

class Test(object):

pass

if __name__ == '__main__':

t1 = Test()

t2 = Test()

# 两者具有相同的地址

print t1, t2

staticmethod装饰器

类中两种常用的装饰,首先区分一下他们:

普通成员函数, 其中第一个隐式参数为对象

classmethod装饰器, 类方法(给人感觉非常类似于OC中的类方法), 其中第一

个隐式参数为类

staticmethod装饰器, 没有任何隐式参数. python中的静态方法类似与C++中的静态方法

#!/usr/bin/env python

# -*- coding: utf-8 -*-

class A(object):

# 普通成员函数

def foo(self, x):

print "executing foo(%s, %s)" % (self, x)

@classmethod # 使用classmethod进行装饰

def class_foo(cls, x):

print "executing class_foo(%s, %s)" % (cls, x)

@staticmethod # 使用staticmethod进行装饰

def static_foo(x):

print "executing static_foo(%s)" % x

def test_three_method():

obj = A()

# 直接调用噗通的成员方法

obj.foo("para") # 此处obj对象作为成员函数的隐式参数, 就是self obj.class_foo("para") # 此处类作为隐式参数被传入, 就是cls

A.class_foo("para") #更直接的类方法调用

obj.static_foo("para") # 静态方法并没有任何隐式参数, 但是要通过对象或者类进行调用

A.static_foo("para")

if __name__ == '__main__':

test_three_method()

# 函数输出

executing foo(<__main__.A object at 0x100ba4e10>, para)

executing class_foo(, para)

executing class_foo(, para)

executing static_foo(para)

executing static_foo(para)

property装饰器

定义私有类属性

将property与装饰器结合实现属性私有化(更简单安全的实现get和set方法)。

#python内建函数

property(fget=None, fset=None, fdel=None, doc=None)

fget是获取属性的值的函数,fset是设置属性值的函数,fdel是删除属性的函数,doc是一个字符串(像注释一样)。从实现来看,这些参数都是可选的。

property有三个方法getter(),setter()和delete() 来指定fget,fset和fdel。这表示以下这行:

class Student(object):

@property #相当于property.getter(score) 或者property(score)

def score(self):

return self._score

@score.setter #相当于score = property.setter(score)

def score(self, value):

if not isinstance(value, int):

raise ValueError('score must be an integer!')

if value < 0 or value > 100:

raise ValueError('score must between 0 ~ 100!')

self._score = value

iter魔法

通过yield和__iter__的结合,我们可以把一个对象变成可迭代的

通过__str__的重写,可以直接通过想要的形式打印对象

#!/usr/bin/env python

# -*- coding: utf-8 -*-

class TestIter(object):

def __init__(self):

self.lst = [1, 2, 3, 4, 5]

def read(self):

for ele in xrange(len(self.lst)):

yield ele

def __iter__(self):

return self.read()

def __str__(self):

return ','.join(map(str, self.lst))

__repr__ = __str__

def test_iter():

obj = T estIter()

for num in obj:

print num

print obj

if __name__ == '__main__':

test_iter()

神奇partial

partial使用上很像C++中仿函数(函数对象)。

在stackoverflow给出了类似与partial的运行方式:def partial(func, *part_args):

def wrapper(*extra_args):

args = list(part_args)

args.extend(extra_args)

return func(*args)

return wrapper

利用用闭包的特性绑定预先绑定一些函数参数,返回一个可调用的变量,直到真正的调用执行:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

from functools import partial

def sum(a, b):

return a + b

def test_partial():

fun = partial(sum, 2) # 事先绑定一个参数, fun成为一个只需要一个参数的可调用变量

print fun(3) # 实现执行的即是sum(2, 3)

if __name__ == '__main__':

test_partial()

# 执行结果

5

神秘eval

eval我理解为一种内嵌的python解释器(这种解释可能会有偏差),会解释字符串为对应的代码并执行,并且将执行结果返回。

看一下下面这个例子:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

def test_first():

return 3

def test_second(num):

return num

action = { # 可以看做是一个sandbox

"para": 5,

"test_first" : test_first,

"test_second": test_second

}

def test_eavl():

condition = "para == 5 and test_second(test_first) > 5"

res = eval(condition, action) # 解释condition并根据action对应的动作执行

print res

if __name__ == '_

exec

exec在Python中会忽略返回值,总是返回None,eval会返回执行代码或语句的返回值

exec和eval在执行代码时,除了返回值其他行为都相同

在传入字符串时,会使用compile(source, '', mode)编译字节码。mode的取值为exec和eval

#!/usr/bin/env python

# -*- coding: utf-8 -*-

def test_first():

print "hello"

def test_second():

test_first()

print "second"

def test_third():

print "third"

action = {

"test_second": test_second,

"test_third": test_third

}

def test_exec():

exec "test_second" in action

if __name__ == '__main__':

test_exec() # 无法看到执行结果

getattr

getattr(object, name[, default])返回对象的命名属性,属性名必须是字符串。如果字符串是对象的属性名之一,结果就是该属性的值。例如,getattr(x, ‘foobar')等价于x.foobar。如果属性名不存在,如果有默认值则返回默认值,否则触发AttributeError 。

# 使用范例

class TestGetAttr(object):

test = "test attribute"

def say(self):

print "test method"

def test_getattr():

my_test = TestGetAttr()

try:

print getattr(my_test, "test")

except AttributeError:

print "Attribute Error!"

try:

getattr(my_test, "say")()

except AttributeError: # 没有该属性, 且没有指定返回值的情况下

print "Method Error!"

if __name__ == '__main__':

test_getattr()

# 输出结果

test attribute

test method

命令行处理

def process_command_line(argv):

"""

Return a 2-tuple: (settings object, args list).

`argv` is a list of arguments, or `None` for ``sys.argv[1:]``. """

if argv is None:

argv = sys.argv[1:]

# initialize the parser object:

parser = optparse.OptionParser(

formatter=optparse.TitledHelpFormatter(width=78),

add_help_option=None)

# define options here:

parser.add_option( # customized description; put --help last

'-h', '--help', action='help',

help='Show this help message and exit.')

settings, args = parser.parse_args(argv)

# check number of arguments, verify values, etc.:

if args:

parser.error('program takes no command-line arguments; ' '"%s" ignored.' % (args,))

# further process settings & args if necessary

return settings, args

def main(argv=None):

settings, args = process_command_line(argv)

# application code here, like:

# run(settings, args)

return 0 # success

if __name__ == '__main__':

status = main()

sys.exit(status)

读写csv文件

# 从csv中读取文件, 基本和传统文件读取类似

import csv

with open('data.csv', 'rb') as f:

reader = csv.reader(f)

for row in reader:

print row

# 向csv文件写入

import csv

with open( 'data.csv', 'wb') as f:

writer = csv.writer(f)

writer.writerow(['name', 'address', 'age']) # 单行写入data = [

( 'xiaoming ','china','10'),

( 'Lily', 'USA', '12')]

writer.writerows(data) # 多行写入

各种时间形式转换

只发一张网上的图, 然后查文档就好了, 这个是记不住的

二级python选择模拟题4

1.设循环队列存储空间为 Q(1: 50),初始状态为 front=rear=50。经过一系列入队和退队操作后, front=rear=25,则该循环队列中元素个数为 A 25 B 26 C 24 D 0 或者 50 2.下列叙述中正确的是 A 设计算法时要考虑时间复杂和空间复杂度 B 设计算法时只需要考虑数据结构的设计 C 算法就是程序 D 设计算法时只需要考虑结果的可靠性 3.一棵二叉树中共有80个叶子结点与70个度为1的结点,则该二叉树中的总结点数为 A 229 B 219 C 231 D 230 4.下面属于白盒测试方法的是 A 等价类划法 B 错误推测法 C 逻辑覆盖 D 边界值分析法 5.下面不能作为结构化方法软件需求分析工具的是 A

B 数据流程图 C 数据字典 D 系统结构图 6.软件生命周期可分为定义阶段、开发阶段和维护阶段,下面不属于开发阶段的任务的是 A 设计 B 测试 C 实现 D 可行性研究 7.下面不属于软件测试实施步骤的是 A 集成测试 B 回归测试 C 确认测试 D 单元测试 8.软件工程的三要素是 A 定义、方法和过程 B 建模、方法和过程 C 方法、工具和过程 D 建模、方法和工具 9.一间宿舍可住多个学生,则实体宿舍和学生之间的联系是 A 一对一 B

C 多对一 D 多对多 10.数据库系统的三级模式不包括 A 数据模式 B 概念模式 C 外模式 D 内模式 11.以下关于Python二维数据的描述中,错误的是______。 A 表格数据属于二维数据,由整数索引的数据构成 B 二维数据,对应于数学中的数组和集合等概念 C CSV格式每行表示一个一维数据,用英文半角逗号分隔,多行表示二维数据 D 二维数据由多条一维数据构成,可以看作一维数据的组合形式 12.以下不是Python文件读写方法的是______。 A readlines() B read() C writeline() D readline() 13.以下关于turtle库的描述,错误的是______。 A seth(x)是setheading(x)函数的别名,让画笔旋转x角度 B home()函数设置当前画笔位置到原点,方向朝上 C 可以用import turtle来导入turtle库函数

《Python程序设计》习题与答案

《Python程序设计》习题与参考答案 第1章基础知识 1.1 简单说明如何选择正确的Python版本。 答: 在选择Python的时候,一定要先考虑清楚自己学习Python的目的是什么,打算做哪方面的开发,有哪些扩展库可用,这些扩展库最高支持哪个版本的Python,是Python 2.x还是Python 3.x,最高支持到Python 2.7.6还是Python 2.7.9。这些问题都确定以后,再做出自己的选择,这样才能事半功倍,而不至于把大量时间浪费在Python的反复安装和卸载上。同时还应该注意,当更新的Python版本推出之后,不要急于更新,而是应该等确定自己所必须使用的扩展库也推出了较新版本之后再进行更新。 尽管如此,Python 3毕竟是大势所趋,如果您暂时还没想到要做什么行业领域的应用开发,或者仅仅是为了尝试一种新的、好玩的语言,那么请毫不犹豫地选择Python 3.x系列的最高版本(目前是Python 3.4.3)。 1.2 为什么说Python采用的是基于值的内存管理模式? 答: Python采用的是基于值的内存管理方式,如果为不同变量赋值相同值,则在内存中只有一份该值,多个变量指向同一块内存地址,例如下面的代码。 >>> x = 3 >>> id(x) 10417624 >>> y = 3 >>> id(y) 10417624 >>> y = 5 >>> id(y) 10417600 >>> id(x) 10417624 1.3 在Python中导入模块中的对象有哪几种方式? 答:常用的有三种方式,分别为 import 模块名[as 别名]

●from 模块名import 对象名[ as 别名] ●from math import * 1.4 使用pip命令安装numpy、scipy模块。 答:在命令提示符环境下执行下面的命令: pip install numpy pip install scipy 1.5 编写程序,用户输入一个三位以上的整数,输出其百位以上的数字。例如用户输入1234,则程序输出12。(提示:使用整除运算。) 答: 1)Python 3.4.2代码: x = input('Please input an integer of more than 3 digits:') try: x = int(x) x = x//100 if x == 0: print('You must input an integer of more than 3 digits.') else: print(x) except BaseException: print('You must input an integer.') 2)Python 2.7.8代码: import types x = input('Please input an integer of more than 3 digits:') if type(x) != types.IntType: print 'You must input an integer.' elif len(str(x)) != 4: print 'You must input an integer of more than 3 digits.' else: print x//100

Python实验3选择结构程序设计

实验3 选择结构程序设计(续) 【实验目的】 1.掌握分支条件语句的使用。 2.掌握分支嵌套语句的使用。 【实验内容】 1.通过Input()函数任意输入三条边长,经过简单的计算后,判断三条边长能否构成三角 形,并确定是类型的三角形,如(等边,等腰,一般三角形)。 a=input("Please input the length of a:") b=input("Please input the length of b:") c=input("Please input the length of c:") if a+b>c and a+c>b and b+c>a: if a==b==c: print "This is an equilateral triangle." if a==b or a==c or b==c: print "This is an isosceles triangle." if a!=b!=c: print "This is a scalene triangle." else: print "These lengths can not form a triangle." 2.密码登录程序。要求:建立一个登录窗口,要求输入帐号和密码。设定用户名为”zhangshan”, 密码为“Python123”;若用户名正确,密码正确,则显示“Zhangshan先生,欢迎你!”;如果用户名错误,则显示“用户名错误,请重新输入!”;若密码不正确,显示“对不起,密码错误,无法登录!”。 x=raw_input("User:") y=raw_input("Password:") if x=="zhangshan" and y=="Python123": print "Welcome,Mr.Zhangshan!" if x=="zhangshan" and y!="Python123": print "Wrong password.No right to log-in." while x!="zhangshan" and y=="Python123": x=raw_input("Wrong user's name.Please enter again:") if x=="zhangshan": print "Zhangshan先生,欢迎你!"

大学计算机python选择填空题库与答案

1、执行循环语句 for i in range(1,5):pass 后,变量 i 的值是【 4】 2、循环语句 for i in range(-3,21-4) 的循环次数为【 6】 3、Python 语言是一种解释型、面向【对象】的程序设计语言 4、建立模块 a.py, 模块内容如下。 def B(): print( ‘BBB’) def A(): print( ‘AAA’) 为了调用模块中的 A()函数应先使用语句【 from a import A 】5、执行循环语句 for i in range(1,5,2):print(i), 循环体执行的次数 是【 2】 6、函数定义以【def】开始,最后以【冒号】结束 7、Python 表达式 4.5/2 的值为【 2.25 】,4.5//2 的值为【 2.0】, 4.5%2 的值为【 0.5】 8、循环语句for i in range(6,-4,-2):循环执行【5】次,循环变量i 的终值应当为【 -2】 9、Python 包含了数量众多的模块,通过【import 】语句,可以导 入模块,并使用其定义的功能 10、下面语句的输出结果是【{1: ’x’,3: ’c’} 】 d={1: ’a’,2: ’b’,3: ’c’} del d[1] d[1]= ’x’

del d[2] print(d) 11、Python 语句 print(tuple(range(2)),list(range(2)))的运行结果是 【(0,1)[0,1] 】 12、Python 表达式 1/4+2.75 的值为【 3.0 】 13、下列 Python 语句的输出结果是【编译错误或异常或出错 或报错或错误】 print( “数{0},量单价 {1} ”.format(100,285,6)) print(str.format(“{0},数单量价 {1:3.2f}”,100,285.6)) print( “数%4d,量单价 %3.3f ”%(100,285,6)) 14、在直角坐标中,x,y是坐标系中任一点的位置,用x和 y 表示 第一象限或第二象限的Python 表达式为【x>0 and y>0 or x<0 and y>0 】 15、语句print(‘AAA’,”BBB”-’,sep=,end=’’!’)执行的结果是 【A AA-BBB! 】 16、判断整数i能否同时被3和5整除的python表达式为【i%3==0 and i%5==0 】 17、要关闭Python解释器,可使用函数【quit()】或快捷键【Ctrl+Q】 18、python 语句既可以采用交互式的【命令】执行方式,又可以 采用【程序】的执行方式 19、语句a,a=10,20执行后,a的值是【20】 20、设有f=lambda x,y;{x:y},则f(5,10)的值是【{5:10}】

PYTHON测试题

Python测试题 一、填空题 1.Python使用符号#标示注释;以缩进对齐划分语句块。 2、Python序列类型包括字符串、列表、元组三种; 字典是Python中唯一的映射类型。 3、Python中的可变数据类型有列表和字典,不可变数据类 型有字符串、数字、元组。 4、Python的数字类型分为整数、长整数、浮点、 复数等子类型。 5、Python提供了两个对象身份比较操作符is和is not来测试两个变量是否指向同一个对象,也可以通过内建函数type()来测试对象的类型。 6、设s=‘abcdefg’,则s[3]值是‘d’,s[3:5]值是‘de’, s[:5]值是‘abcdf’,s[3:]值是‘defg’,s[::2]值是‘aceg’,s[::-1]值是‘gfedcba’,s[-2:-5]值是‘’。 二、选择题 1.下列哪个语句在Python中是非法的?() A、x=y=z=1 B、x=(y=z+1) C、x,y=y,x D、x+=y 2.关于Python内存管理,下列说法错误的是()

A、变量不必事先声明 B、变量无须先创建和赋值而直接使用 C、变量无须指定类型 D、可以使用del释放资源 3、下面哪个不是Python合法的标识符() A、int32 B、40XL C、self D、__name__ 4、下列哪种说法是错误的() A、除字典类型外,所有标准对象均可以用于布尔测试 B、空字符串的布尔值是False C、空列表对象的布尔值是False D、值为0的任何数字对象的布尔值是False 5、下列表达式的值为True的是() A、5+4j>2-3j B、3>2>2 C、(3,2)<(‘a’,’b’) D、’abc’>‘xyz’ 6、Python不支持的数据类型有() A、char B、int C、float D、list 7、关于Python中的复数,下列说法错误的是() A、表示复数的语法是real+image j B、实部和虚部都是浮点数 C、虚部必须后缀j,且必须是小写 D、方法conjugate返回复数的共轭复数 8、关于字符串下列说法错误的是() A、字符应该视为长度为1的字符串 B、字符串以\0标志字符串的结束

大学计算机python选择填空题库及答案

1、执行循环语句for i in range(1,5):pass后,变量i的值是【4】 2、循环语句for i in range(-3,21-4)的循环次数为【6】 3、Python语言是一种解释型、面向【对象】的程序设计语言 4、建立模块a.py,模块内容如下。 def B(): print(‘BBB’) def A(): print(‘AAA’) 为了调用模块中的A()函数应先使用语句【from a import A】 5、执行循环语句for i in range(1,5,2):print(i),循环体执行的次数 是【2】 6、函数定义以【def】开始,最后以【冒号】结束 7、Python表达式4.5/2的值为【2.25】,4.5//2的值为【2.0】, 4.5%2的值为【0.5】 8、循环语句for i in range(6,-4,-2):循环执行【5】次,循环变量i 的终值应当为【-2】 9、Python包含了数量众多的模块,通过【import】语句,可以导 入模块,并使用其定义的功能 10、下面语句的输出结果是【{1:’x’,3:’c’}】 d={1:’a’,2:’b’,3:’c’} del d[1] d[1]=’x’

del d[2] print(d) 11、Python语句print(tuple(range(2)),list(range(2)))的运行结果是 【(0,1)[0,1]】 12、Python表达式1/4+2.75的值为【3.0】 13、下列Python语句的输出结果是【编译错误或异常或出错 或报错或错误】 print(“数量{0},单价{1}”.format(100,285,6)) print(str.format(“数量{0},单价{1:3.2f}”,100,285.6)) print(“数量%4d,单价%3.3f”%(100,285,6)) 14、在直角坐标中,x,y是坐标系中任一点的位置,用x和y表示 第一象限或第二象限的Python表达式为【x>0 and y>0 or x<0 and y>0】 15、语句p rint(‘AAA’,”BBB”,sep=’-’,end=’!’)执行的结果是 【AAA-BBB!】 16、判断整数i能否同时被3和5整除的python表达式为【i%3==0 and i%5==0】 17、要关闭Python解释器,可使用函数【quit()】或快捷键【Ctrl+Q】 18、python语句既可以采用交互式的【命令】执行方式,又可以 采用【程序】的执行方式 19、语句a,a=10,20执行后,a的值是【20】 20、设有f=lambda x,y;{x:y},则f(5,10)的值是【{5:10}】

Python编程教案四—if条件选择语句

Python编程教案集 教案四:IF条件选择语句 即墨一中孔繁英 教学目标 知识与技能目标:掌握if选择语句的基本格式,理解if选择语句的作用及使用方法,会使用if-else进行多条件判断,掌握常用的关系运算符和算术运算符。 过程与方法目标:通过提出问题引导学生用if选择语句来解决实际问题,小组团结合作共同探究多种情况下的if-else选择语句。 情感态度价值观目标:让学生体会运用所学知识解决实际问题的成就感,提高对编程的兴趣,提高学生的逻辑思维能力及举一反三解决问题的能力。 教学重难点 1.重点:掌握if条件选择语句的使用方法,掌握关系运算符和算术运算符。 2.难点:用if-else进行多条件判断。 教学方法 1.教法:任务驱动法、演示教学 2.学法:自主探究、小组合作 教学过程: 一、复习旧知: 【动手操作:】输入三个整数a,b,c,计算表达式(a+b)*c的值。

学生上机编写语句并运行 二、教学新知 (一)关系运算符 在刚才的程序语句中,我们计算的是表达式的数值,如果想要从输入的这三个数字中找出最大数值或者最小数值,我们应该怎么做呢?我们需要对数值进行两两比较,如果a>b,再比较a跟c的关系,如果a>c,那么a就是最大值。其中任意两个数值之间的比较就是一种关系运算,这就涉及到关系运算符,关系运算符是双目运算符,表示左右两部分的大小关系。python中常见的关系运算符有6种,分别是: 从上面表格中的举例我们可以看出,对于由变量、数据及关系运算符组成的表达式只会出现两种结果,要么True,要么False,就是我们前面学过的布尔类型(boolean)。 【学生任务一:】 练习下面程序语句:

python的三种选择语句

本文将详细介绍Python语言中的三种选择语句:if语句,if/else语句和if/elif/else 语句。对于每种语句,我们都提供了相应的流程图。与此同时,我们给出许多简单的示例程序,以帮助读者加深理解。 一、程序的控制结构 对于Python程序中的执行语句,默认时是按照书写顺序依次执行的,这时我们说这样的语句是顺序结构的。但是,仅有顺序结构还是不够的,因为有时候我们需要根据特定的情况,有选择地执行某些语句,这时我们就需要一种选择结构的语句。另外,有时候我们还可以在给定条件下往复执行某些语句,这时我们称这些语句是循环结构的。有了这三种基本的结构,我们就能够构建任意复杂的程序了。 对本文来说,我们要讨论的是三种基本程序结构中的选择结构,它们分别用if语句、if/else 语句和if/elif/else语句实现。至于其它两种控制结构,我们会在后续的文章中陆续加以介绍。下面我们首先介绍if语句。 二、if语句 Python的if语句的功能跟其他语言的非常相似,都是用来判定给出的条件是否满足,然后根据判断的结果(即真或假)决定是否执行给出的操作。If语句是一种单选结构,它选择的是做与不做。它是由三部分组成:关键字if本身、测试条件真假的表达式(我们简称为条件表达式)和表达式结果为真(即表达式的值为非零)时要执行的代码。If语句的语法形式如下所示: if 表达式: 语句体 if语句的流程图如下所示: 图1 if语句的流程示意图 注意,if语句的语句体只有当条件表达式的值为真,即非零时,才会执行;否则的话,程序就会直接跳过这个语句体,去执行紧跟在这个语句体之后的语句。我们这里的语句体,既

python选择题word打印版

一、python语法基础 1、 Python 版本的保留字总数是 , 不是 以下选项中 2.语言保留字的是 Python A while B pass C do D except Python 关于 , 程序格式框架 3.以下选项中描述错误的是 A Python 语言不采用严格的“缩进”来表明程序的格式框架 B Python 单层缩进代码属于之前最邻近的一行非缩进代码,多层缩进代码根据缩进关系决定所属范围 C Python 语言的缩进可以采用 Tab 键实现 D 判断、循环、函数等语法形式能够通过缩进包含一批 Python 代码,进而表达对应的语义 4. 下列选项中不符合Python语言变量命名规则的是 A TempStr B I C 3_1 D _AI 以下选项中 , 5.字符串的描述错误的是 Python 关于 A Python语言中,字符串是用一对双引号""或者一对单引号 '' 括起来的零个或者多个字符 B 字符串包括两种序号体系:正向递增和反向递减 C 字符串是字符的序列,可以按照单个字符或者字符片段进行索引 D Python字符串提供区间访问方式,采用[N:M]格式,表示字符串中从N到M的索引子字符串(包含N和M) 6.给出如下代码 TempStr ="Hello World" 可以输出“World”子串的是 A . print(TempStr[–5:0]) B print(TempStr[–5:]) C print(TempStr[–5: –1]) D print(TempStr[–4: –1]) 7. 关于赋值语句,以下选项中描述错误的是 A a,b = b,a 可以实现a 和 b值的互换 B a,b,c = b,c,a 是不合法的 C在Python语言中,“=”表示赋值,即将“=”右侧的计算结果赋值给左侧变量,包含“=”的语句称为赋值语句 D 赋值与二元操作符可以组合,例如&= eval 关于 , 8.以下选项中描述错误的是 函数 A eval函数的定义为:eval(source, globals=None, locals=None, /) B 执行“>>> eval("Hello")”和执行“>>> eval("'Hello'")”得到相同的结果 C eval函数的作用是将输入的字符串转为Python语句,并执行该语句 D 如果用户希望输入一个数字,并用程序对这个数字进行计算,可以采用eval(input(<输入提示字符串>))组合 关于 9.以下选项中描述错误的是 Python 语言的注释 , A Python语言有两种注释方式:单行注释和多行注释 B Python语言的单行注释以#开头

大学计算机python选择填空题库及答案

1、 执行循环语句for i in range(1,5):pass后,变量i的值是【4】9、循环语句for i in range(-3,21-4)的循环次数为【6】 10、Python语言是一种解释型、面向【对象】的程序设计语言 11、建立模块a.py,模块内容如下。 def B(): print(‘BBB') def A(): print(‘AAA') 为了调用模块中的A()函数应先使用语句【from a import A】 12、执行循环语句for i in range(1,5,2):print(i),循环体执行的次数是【2】 13、函数定义以【def】开始,最后以【冒号】结束 14、Python表达式4.5/2的值为【2.25】,4.5//2的值为【2.0】,4.5%2的值为【0.5】 15、循环语句for i in range(6,-4,-2):循环执行【5】次,循环变量i的终值应当为【-2】 16、Python包含了数量众多的模块,通过【import】语句,可以导 入模块,并使用其定义的功能 17、下面语句的输出结果是【{1:'x',3:'c'}】 d={1:'a',2:'b',3:'c'} del d[1]

d[1]='x'. del d[2] print(d) 18、Python语句print(tuple(range(2)),list(range(2)))的运行结果是【(0,1)[0,1]】 19、Python表达式1/4+2.75的值为【3.0】 20、下列Python语句的输出结果是【编译错误或异常或出错或报错或错误】 print(“数量{0},单价{1}”.format(100,285,6)) print(str.format(“数量{0},单价{1:3.2f}”,100,285.6)) print(“数量M,单价%3.3f”%(100,285,6)) 21、在直角坐标中,x,y是坐标系中任一点的位置,用x和y表示第一象限或第二象限的Python表达式为【x>0 and y>0 or x<0 and y>0】 22、语句print(‘AAA',”BBB”,sep='-',end='!')执行的结果是【AAA-BBB!】 23、判断整数i能否同时被3和5整除的python表达式为【i%3==0 and i%5==0】 24、要关闭Python解释器,可使用函数【quit()】或快捷键【Ctrl+Q】 25、python语句既可以采用交互式的【命令】执行方式,又可以采用【程序】的执行方式 26、语句a,a=10,20执行后,a的值是【20】

python选择题word打印版

Python单选题库 一、python语法基础 1、Python 3.x 版本的保留字总数是 A.27 B.29 C.33 D.16 以下选项中,不是Python 语言保留字的是 A while B pass C do D except 关于Python 程序格式框架,以下选项中描述错误的是 A Python 语言不采用严格的“缩进”来表明程序的格式框架 B Python 单层缩进代码属于之前最邻近的一行非缩进代码,多层缩进代码根据缩进关系决定所属范围 C Python 语言的缩进可以采用Tab 键实现 D 判断、循环、函数等语法形式能够通过缩进包含一批Python 代码,进而表达对应的语义 下列选项中不符合Python语言变量命名规则的是 A TempStr B I C 3_1 D _AI 以下选项中,关于Python字符串的描述错误的是 A Python语言中,字符串是用一对双引号""或者一对单引号'' 括起来的零个或者多个字符 B 字符串包括两种序号体系:正向递增和反向递减 C 字符串是字符的序列,可以按照单个字符或者字符片段进行索引 D Python字符串提供区间访问方式,采用[N:M]格式,表示字符串中从N到M 的索引子字符串(包含N和M) 给出如下代码 TempStr ="Hello World" 可以输出“World”子串的是 A . print(TempStr[–5:0]) B print(TempStr[–5:]) C print(TempStr[–5: –1]) D print(TempStr[–4: –1]) 关于赋值语句,以下选项中描述错误的是 A a,b = b,a 可以实现a 和b值的互换 B a,b,c = b,c,a 是不合法的 C在Python语言中,“=”表示赋值,即将“=”右侧的计算结果赋值给左侧变量,包含“=”的语句称为赋值语句 D 赋值与二元操作符可以组合,例如&= 关于eval函数,以下选项中描述错误的是 A eval函数的定义为:eval(source, globals=None, locals=None, /) B 执行“>>> eval("Hello")”和执行“>>> eval("'Hello'")”得到相同的结果 C eval函数的作用是将输入的字符串转为Python语句,并执行该语句 D 如果用户希望输入一个数字,并用程序对这个数字进行计算,可以采用

python试卷

《Python 程序设计》期中考试卷 一、填空题(每空1分,共40分) 1.Python 使用符号 标示注释;还有一种叫做 的特别注释。 2.可以使用 符号把一行过长的Python 语句分解成几行;多个语句也可以写在同一行,语句之间要用 符号隔开。 3、每一个Python 的 都可以被当作一个模块。导入模块要使用关键字 。 4、所有Python 对象都有三个特性: 、 、 。 5、Python 的数字类型分为 、 、 、 、 等子类型。 6、Python 序列类型包括 、 、 三种; 是Python 中唯一的映射类型。 7、Python 提供了两个对象身份比较操作符 和 来测试两个变量是否指向同一个对象,也可以通过内建函数 来测试对象的身份。 8、Python 的标准类型内建函数有: 、 、 、 、 等。 9、Python 的传统除法运算符是 ,地板除法运算符是 。 10、设s=‘abcdefg ?,则s[3]值是 ,s[3:5]值是 ,s[:5]值是 ,s[3:]值是 ,s[ : :2]值是 ,s[::-1]值是 ,s[-2:-5]值是 。 11、删除字典中的所有元素的函数是 ,可以将一个字典的内容添加到另外一个字典中的函数是 ,返回包含字典中所有键的列表的函数是 ,返回包含字典中所有值的列表的函数是 ,判断一个键在字典中是否存在的函数是 。

1.下列哪个语句在Python中是非法的?() A、x = y = z = 1 B、x = (y = z + 1) C、x, y = y, x D、x += y 2.关于Python内存管理,下列说法错误的是() A、变量不必事先声明 B、变量无须先创建和赋值而直接使用 C、变量无须指定类型 D、可以使用del释放资源 3、下列哪种情况会导致Python对象的引用计数增加() A、对象被创建 B、被作为参数传递给函数 C、成为容器对象的元素 D、该对象无法访问时 4、下面哪个不是Python合法的标识符() A、int32 B、40XL C、self D、__name__ 5、下列哪种说法是错误的() A、除字典类型外,所有标准对象均可以用于布尔测试 B、空字符串的布尔值是False C、空列表对象的布尔值是False D、值为0的任何数字对象的布尔值是False 6、下列表达式的值为True的是() A、5+4j > 2-3j B、3>2>2 C、(3,2)< (…a?,?b?) D、?abc? > …xyz? 7、Python不支持的数据类型有() A、char B、int C、float D、list 8、关于Python中的复数,下列说法错误的是() A、表示复数的语法是real + image j B、实部和虚部都是浮点数 C、虚部必须后缀j,且必须是小写 D、方法conjugate返回复数的共轭复数 9、关于字符串下列说法错误的是() A、字符应该视为长度为1的字符串 B、字符串以\0标志字符串的结束 C、既可以用单引号,也可以用双引号创建字符串 D、在三引号字符串中可以包含换行回车等特殊字符 10、以下不能创建一个字典的语句是() A、dict1 = {} B、dict2 = { 3 : 5 } C、dict3 = dict( [2 , 5] ,[ 3 , 4 ] ) D、dict4 = dict( ( [1,2],[3,4] ) ) 11、下面不能创建一个集合的语句是() A、s1 = set () B、s2 = set (“abcd”) C、s3 = (1, 2, 3, 4) D、s4 = frozenset( (3,2,1) ) 12、下列Python语句正确的是() A、min = x if x < y else y B、max = x > y ? x : y C、if (x > y) print x D、while True : pass

相关文档
最新文档