#__author: hasee #date: 2018/1/13 # 有10个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子 # 设计一个程序计算最后留下的是原来第几号的那位 # 答案:4 # 让10个人围成一圈 l1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] num = 1 for i in l1: if num != 3: # l1.append(i) if num > 3: # 当num超过3时,通过重新赋值变回1 num = 1 # print(num) #报数,从1到3 num = num + 1 # print(l1) print(l1[-1]) # 假如有一辆汽车,速度是60km/h,从A地行驶到B地(距离100km),计算耗费的时间 # 分别以面向过程、面向对象两种不同的编程思想设计程序 # 面向过程 # 1、确定汽车行驶的距离 d = 300 # 2、确定汽车的速度 s = 80 # 3、利用距离/速度确定耗费的时间 result = d / s # 4、输出计算的结果 print("%.2f" % result) # 面向对象 # 1、分析参与的对象-汽车 # 2、分析对象的行为属性-行驶、数据属性-速度 # 3、抽象出类,并完成类的定义 class Car: # 类体-行为属性、数据属性 # 分析数据属性通过哪种变量描述:类变量、对象变量 # 定义对象变量 def __init__(self, speed): self.s = speed # 描述行为属性 def drive(self, distance): # 通过距离/速度,反馈耗时 result = distance / self.s print("%.2f" % result) # 4、梳理过程,并明确过程中对象是如何参与的 c1 = Car(80) c1.drive(300) #设计一个程序,能够随机生成一个四位的验证码,验证码中可以出现数字和字母 from random import choice #A-Z 65-90 #a-z 97-122 #print(ord(‘B‘)) #print(chr(98)) s1=‘‘ for i in range(97,123): s1=s1+chr(i) print(s1) for j in range(65,91): s1=s1+chr(j) print(s1) for x in range(0,10): s1=s1+str(x) print(s1) result=‘‘ for i in range(4): result=result+choice(s1) print(result) #异常处理 #通过在代码中实现异常处理,能够在程序发生异常时,完成异常的自定义处理 #通过在代码中实现异常处理,能够在程序发生异常时,让程序继续向下执行 #try #将可能会在执行期间发生异常的代码,放到try结构体中 #except #一旦try结构体中的代码发生异常,可以通过except来捕获异常 #except关键字后面,可以指定异常类型的名称,代表当前except只处理这种类型的异常 #在try语句后面可以有多个except,代表同一段代码发生的不同类型的异常分别处理 #多个except语句执行时,有先后顺序,如果先执行的except捕获到异常,后面的except就不再执行 #一个except语句后面,可以指定多种异常类型名称(逗号、括号),代表这几种异常按照相同的方式处理 #else #代表没有发生异常时,要做的事情 #finally #不论是否发生异常,都要做的事情 #raise #主动抛出异常,可以作为控制程序执行逻辑的一种特殊方式 print("请输入一个数字:") try: num=int(input()) if num<0: #print("小于0") raise ValueError else: #print("大于0") raise IOError except ValueError: print("小于0") except IOError: print("大于0") else: print(num+1) finally: print("hello") print("hello") # 面向过程思想 # 以事件为中心 # 梳理事件的解决过程 # 明确过程中每一环节应该做的工作 # 明确程序在过程中是如何参与的 # 通过编写代码将程序应该做的工作实现出来,并最终得到完整的程序 # 面向对象思想 # 以对象为中心 # 先明确事件的解决过程中有哪些对象参与 # 梳理在对象参与时,有哪些行为和数据 # 通过代码来描述对象 # 梳理事件的过程,并明确对象如何参与 class Pen: # 类体 # 数据属性-变量(类变量、对象变量) # 类变量 同类对象共有的数据 # 类变量在类体中,类的方法外定义 # 类变量在使用时,需要通过类名修饰 # 对象变量 每一个对象特有的数据 # 对象变量在类体中,类的方法内定义(很多时候是在__init__方法中定义) # 对象变量在使用时,需要通过对象名来修饰 num = 0 # __init__在对象被创建时,自动执行 # __init__方法更多的用于对对象做初始化处理 def __init__(self): Pen.num = Pen.num + 1 self.color = ‘Red‘ print("hello") # 行为属性-函数(类的方法) def write(self): # self.color=‘Red‘ print("hello") p1 = Pen() p2 = Pen() print(Pen.num) print(p1.color) print(p2.color) # Pen.write(p1) # p1.write() #简化,执行时被转换成Pen.write(p1) # print(p1.color) class Student: __num = 0 # 变量命名时,以双下划线开头,即为私有变量 # 私有变量不能在类外访问 # 数据属性 def __init__(self, n): self.name = n self.__baoshu() # 行为属性 def __baoshu(self): print(self.name) s1 = Student(‘zhangsan‘)
异常处理语句:
try:
可能出错
except(捕获异常): #except后不加任何异常名称表示所有的异常,等同于except exception:
except(ValueError,IOError): #表示多个异常类型名称用元组括起来,加逗号
class Student: #Student 第一个要大写,与函数分开
def __init__(self):
pass #用pass没有任何结果,只是确保语法完整性