#?标有"#"的行是修改过的,对比一下看看.
class?LightSwitch:
def?__init__(self,condition):
self.is_on?=?condition
if?not?isinstance(condition,bool):
InvaildSwitchExpection?=?TypeError("it?is?not?a?right?state".format(condition))
raise?InvaildSwitchExpection
def?turn_on(self):
self.is_on?=?True
def?turn_off(self):
self.is_on?=?False
def?filp(self):
if?self.is_on?==?False:
else:
def?__str__(self):
if?self.is_on?==?True:
return?"I?am?on"
return?"I?am?off"
class?SwitchBoard(LightSwitch):
def?__init__(self,?number):
self._lights?=?[]
for?i?in?range(0,?number):
i?=?LightSwitch(False)
self._lights.append(i)
def?which_switch(self):
result?=?[]
for?i?in?range(0,?len(self._lights)):
if?self._lights[i].is_on?==?True:
result.append(str(i))?#
return?result
result?=?self.which_switch()?#
result_str?=?','.join(result)
return?'The?following?switches?are?on:?'?+?result_str
def?filp(self,?n):
if?self._lights[n]?==?False:
self._lights[n].is_on?=?True
self._lights[n].is_on?=?False
def?filp_every(self,?n):
k?=?0
while?n?*?k?=?len(self._lights)?-?1:
if?self._lights[n?*?k].is_on?==?False:
self._lights[n?*?k].is_on?=?True
self._lights[n?*?k].is_on?=?False
k?=?k?+?1
def?reset(self):
for?light?in?self._lights:
light.is_on?=?False?#
light_board?=?SwitchBoard(10)
print(light_board)
light_board.reset()
light_board.filp_every(1)
有的代码可以写得更简洁,基类已经提供的服务(接口),在派生类中直接使用就可以了.下面的仅供参考.
self.is_on?=?not?self.is_on?##
for?i?in?range(number):
for?i?in?range(len(self._lights)):?##
self._lights[n].filp()?##
self.filp(n?*?k)?##
light.turn_off()?##
def demo(m, n):
for ji in range(1, m + 1):
tu = m - ji
return (ji, tu)
return (-1, -1)
m, n = input('输入鸡兔数,脚数:').split(',')
if demo(int(m), int(n)) == (-1, -1):
print('输入数据出错!')
print('%d只鸡,%d只兔.' % demo(int(m), int(n)))
#判断一个数是否位素数,并且返回所有三位数的素数
def?getss(n):
#判断n是否位素数
if?(n?%?i?==?0):
print('%s?不是素数'?%?n)
break
print('%s?是素数'?%?n)
#?查询所有的三位素数
num?=?[]
for?i?in?range(100,?1000):
if?(i?%?j?==?0):
num.append(i)
return?num
#?求两个正整数的最大公约数
def?gcd(a,?b):
if?a?b:
a,?b?=?b,?a
while?(a?%?b?!=?0):
c?=?a?%?b
a?=?b
b?=?c
return?b
import?cmath
def?getroot(a,?b,?c):
print(result)
源码:
链接:
提取码:rizf
第一段:字符串转换成列表
第二段:字符串转换成字典
第三段:字符串转换成元组
eval函数就是实现list、dict、tuple与str之间的转化
str函数把list,dict,tuple转为为字符串
回到顶部
b = eval(a)
print(type(b))print(b)
b = eval(a)print(type(b))print(b)
b=eval(a)print(type(b))print(b)
了解 Python 编程基础
首先第一点,要能够看懂了解变量、基础语法、编程规范等,这些事能够上手编写Python 代码的前提.
其次第二点,对于数据结构,字符串、列表、字典等需要比较熟练运用.
刚开始的这部分就做一些简单的练习,构造出一个数据类型,然后再实现基本的用法.比如你自己构造一个列表,实现列表中数据的访问、更新、删除等基本操作,比如len()、max()、min() 函数,以及 append()、count()、extend() 等方法.
Python函数及流程控制
有了前面的基础练习之后,学习Python的函数和控制语句,是真正去解决问题的过程,如何将固定的功能模块封装成函数,如何实现判断和循坏,这些不仅是写出代码的必要条件,也是训练编程思维的必经之路.
流程控制比较好掌握一些,条件语句和循坏语句在不同的场景下练习几遍,知道判断和循环实现的过程就行.
函数这个部分无外乎函数的定义、函数调用以及参数传递,但是要能够熟练地写出函数实现对应的功能,需要注意的细节很多.
利用Python做些事情
在前期的理论知识学透之后,你不妨尝试着利用利用Python做些事情,检验自己的学习成果,这样也能够巩固加深自己学习的理论知识.同时,可以查漏补缺,看看自己哪方面需要保持,哪方面需要继续学习.
这个时候不妨了解一些第三方库,你可以做更多的事情.对于不同的库,内部的方法、函数你还需要去熟悉,开始的时候先掌握少部分最常用的方法,在遇到实际的问题的时候,再去查对应的更多的用法,这样会更高效.
深入Python编程
首先需要了解Python的高级特性,如迭代器、生成器、装饰器等,了解类和面向对象的理念.深入下去,你可以去探索Python的实现原理,Python的性能优化,跳出Python语言本身,去了解计算机的交互原理,还有很长的路要走,但并不是每一个人都需要这个过程.
但这些确实是你在这个领域立足生根的重要条件,对于特别想要在IT行业发展的人来说,这个过程是非常有必要的.
以上就是土嘎嘎小编为大家整理的python编程开关函数相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!