python基础

好久不见. 提交于 2019-12-03 11:41:41

/******对象******/

-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)

 

 

 

 

 

/******对象******/

/******对象******/

/******对象******/

/******对象******/

/******对象******/

/******对象******/

/******对象******/

/******对象******/

/******对象******/

/******对象******/

/******对象******/

/******对象******/

/******对象******/

/******对象******/

/******对象******/

/******对象******/

/******对象******/

/******对象******/

/******对象******/

/******对象******/

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!