/******对象******/
-python面向对象的语言-一切皆对象-程序运行当中,所有的数据都是存储到内存当中然后在运行-对象就是内存中专门从来存储数据的一块区域-对象实际上就是一个容器,专门用来存储数据-像数值、字符串、布尔值、None都是对象对象的结构 - 每个对象中都要保存三种数据 - id(标识) > id用来标识对象的唯一性,每一个对象都有唯一的id > 对象的id就相当于人的身份证号一样 > 可以通过id()函数来查看对象的id > id是由解析器生成的,在CPython中,id就是对象的内存地址 > 对象一旦创建,则它的id永远不能再改变 - type(类型) > 类型用来标识当前对象所属的类型 > 比如:int str float bool 。。。 > 类型决定了对象有哪些功能 > 通过type()函数来查看对象的类型 > Python是一门强类型的语言,对象一旦创建类型便不能修改 - value(值) > 值就是对象中存储的具体的数据 > 对于有些对象值是可以改变的 > 对象分成两大类,可变对象 不可变对象 可变对象的值可以改变 不可变对象的值不能改变,之前学习的对象都是不可变对象变量和对象 - 对象并没有直接存储到变量中,在Python中变量更像是给对象起了一个别名 - 变量中存储的不是对象的值,而是对象的id(内存地址), 当我们使用变量时,实际上就是在通过对象id在查找对象 - 变量中保存的对象,只有在为变量重新赋值时才会改变 - 变量和变量之间是相互独立的,修改一个变量不会影响另一个变量类型转换 - 所谓的类型转换,将一个类型的对象转换为其他对象 - 类型转换不是改变对象本身的类型,而是根据当前对象的值创建一个新对象is比较两个对象的id==比较两个对象的值
/******条件控制******/
'''编写一个程序,获取一个用户输入的整数。然后通过程序显示这个数是奇数还是偶数'''num=int(input('请输入一个整数:'))if num%2==0: print(num,'这是一个偶数')else: print(num,'这是一个奇数')'''编写一个程序,检查任意一个年份是否是闰年。如果一个年份可以被4整除不能被100整除,或者可以被400整除,这个年份就是闰年'''year=int(input('请输入一个年份:'))if year%4==0 and year%100!=0 or year%400==0: print(year,'这一年是闰年')else: print(year,'这一年是平年')'''编写一个程序,获取用户输入的狗的年龄,然后通过程序显示其相当于人类的年龄。如果用户输入负数,请显示一个提示信息狗的前两年每一年相当于人类的10.5岁,然后每增加一年就增加四岁。那么5岁的狗相等于人类的年龄就应该是10.5+10.5+4+4+4 = 33岁'''dog_age=float(input('请输入狗的年龄:'))like_person_age=0if dog_age<0: print('你的输入不合法')if dog_age>0: if dog_age<=2: like_person_age=dog_age*10.5 else: like_person_age=2*10.5 like_person_age+=(dog_age-2)*4 print(dog_age,'岁的狗年纪相当于',like_person_age,'岁的人')'''输入小明的期末成绩:当成绩为100时,'奖励一辆BMW'当成绩为[80-99]时,'奖励一台iphone'当成绩为[60-79]时,'奖励一本参考书'其他时,什么奖励也没有'''res=int(input('请输入成绩:'))if 0<=res<=100: if res==100: print('奖励一辆BMW') elif 80<=res<=99: print('奖励一台iPhone') elif 60<=res<=79: print('奖励一本参考书') else: print('什么奖励也没有')else: print('输入不合法')'''女方家长要嫁女儿,当然要提出一定的条件:高:180cm以上; 富:1000万以上; 帅:500以上;如果这三个条件同时满足,则:'我一定要嫁给他'如果三个条件有为真的情况,则:'嫁吧,比上不足,比下有余。'如果三个条件都不满足,则:'不嫁!''''sg=180cf=1000yz=500g=int(input('请输入身高(厘米):'))f=int(input('请输入财富(万):'))s=int(input('请输入颜值:'))if g>=sg and f>=cf and s>=yz: print('我一定要嫁给他')elif g>=sg or f>=cf or s>=yz: print('嫁吧,比上不足,比下有余')else: print('不嫁')
/******while循环******/
'''while语句在执行时,先对while后的条件表达式进行求值判断如果判断为True,则执行循环体(代码块),执行完毕继续判断,直到结果为False,循环中止。循环的三个条件: 初始化表达式, 条件表达式 更新表达式'''i=0#初始化表达式while i<10:#条件表达式 i+=1 #更新表达式 print(i,'hello')'''求100以内所有的奇数之和'''方法一:i=0sum=0#创建一个变量保存结果while i<100: i+=1 if i%2!=0: sum+=iprint(sum)方法二:i=1sum=0while i<100: sum+=i i+=2print(sum)'''求100以内所有7的倍数之和,以及个数'''i=0sum=0while i<100: i+=1 if i%7==0: sum+=iprint(sum)i=7sum=0count=0while i<100: count+=1 sum+=i i+=7print('总和为:',sum, '总次数为:',count)'''水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身(例如:1**3 + 5**3 + 3**3 = 153)。求1000以内所有的水仙花数'''i=100while i<1000: a=i//100 b=i//10%10 # b=(i-a*100)//10 c=i%10 if a**3+b**3+c**3==i: print(i) i+=1'''获取用户输入的任意数,判断其是否是质数。质数是只能被1和它自身整除的数,1不是质数也不是合数'''num=int(input('请输入一个任意的大于1的整数:'))i=2flag=True#创建一个变量用来记录num是否为质数,默认为质数while i <num: if num %i==0: flag=False i+=1if flag: print(num,'是质数')else: print(num,'不是质数')
/******循环嵌套******/
# 创建一个循环来控制图形的高度# 循环嵌套时,外层循环每执行一次,内层循环执行一圈'''* * * * ** * * * ** * * * ** * * * ** * * * *'''i=0while i <5: #创建一个内层循环来控制图形的宽度 j=0 while j<5: print('* ',end='') j+=1 print() i+=1'''* * * * * * * * * * * * * * * '''i=0while i <5: #创建一个内层循环来控制图形的宽度 j=0 while j<5-i: print('* ',end='') j+=1 print() i+=1'''* * * * * * * * * * * * * * * '''i=0while i <5: #创建一个内层循环来控制图形的宽度 j=0 while j<i+1: print('* ',end='') j+=1 print() i+=1'''九九乘法表'''i=1while i<10: j=1 while j<i+1: print(str(j)+'*'+str(i)+'='+str(i*j),end=' ') j+=1 print() i+=1'''求100以内的所有质数'''i=2while i<=100: #创建一个变量,记录i的状态,默认为i是质数 flag=True # 判断i是否是质数 #获取所有可能成为i的因数的数 j=2 while j<i: #判断i能否被i整除 if i %j==0: #i能被j整除,证明i不是质数,修改flag为False flag=False j+=1 #验证并输出结果 if flag: print(i) i+=1#质数练习优化from time import *#优化前:15.3s#第一次优化:1.6s#第三次优化:0.05sbegin=time()i=2while i<=10000: flag=True j=2 while j<=i**0.5:#第二次优化 if i %j==0: flag=False #一旦进入判断,则证明i一定不是质数,此时内层循环没有继续执行的必要 break#第一次优化 j+=1 if flag: pass # print(i) i+=1end=time()print(end-begin)'''break可以用来立即退出循环语句(包括else)continu可以用来跳过当次循环break和continue都是只对离他最近的循环起作用'''
/******练习1******/
import timeprint('=================================欢迎来到唐僧大战白骨精=================================')role = input('身份选择\n' '1.唐僧\n' '2.白骨精\n' '请选择:')if role == '1': print('你好,唐僧')elif role == '2': print('太不要脸了,系统自动给你分配为唐僧')else: print('你好,你是唐僧')player_att = 2player_life = 2boss_life = 10boss_att = 10print('*' * 50)print('唐僧,你的生命值是 %s你的攻击力是 %s' % (player_life, player_att))print('*' * 50)time.sleep(1)while True: print('=' * 50) print('请选择操作:') print('1.练级') print('2.打boss') print('3.逃跑') chose = input('请选择你要进行的操作:') if chose == '1': player_life += 2 player_att += 2 print('*' * 50) print('唐僧,恭喜你升级了,你的生命值是%s你的攻击力是%s' % (player_life, player_att)) elif chose == '2': boss_life -= player_att print('-' * 50) print('唐僧攻击白骨精') if boss_life <= 0: print('白骨精受到了%s点伤害,挂了,唐僧胜利 ' % player_att) break player_life -= boss_att print('-' * 50) print('白骨精攻击唐僧') if player_life <= 0: print('唐僧受到了%s点伤害,游戏结束 ' % boss_att) break elif chose == '3': print('唐僧跑了,游戏结束') break else: print('你的输入有误,请重新输入')
/******序列******/
序列是Python中最基本的一种数据结构
- 数据结构指计算机中数据存储的方式
- 序列用于保存一组有序的数据,所有的数据在序列当中都有一个唯一的位置(索引)
并且序列中的数据会按照添加的顺序来分配索引
- 序列的分类:
可变序列(序列中的元素可以改变):
> 列表(list)
不可变序列(序列中的元素不能改变):
> 字符串(str)
> 元组(tuple)
/******对象******/
/******对象******/
/******对象******/
/******对象******/
/******对象******/
/******对象******/
/******对象******/
/******对象******/
/******对象******/
/******对象******/
/******对象******/
/******对象******/
/******对象******/
/******对象******/
/******对象******/
/******对象******/
/******对象******/
/******对象******/
/******对象******/
/******对象******/