#__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没有任何结果,只是确保语法完整性