基于Java教你如何半小时搞定python基础

来源:互联网 发布:js将文件转换为base64 编辑:程序博客网 时间:2024/06/06 19:55

python在我个人的理解是相对于其它是一门比较容易的语言,加上最近的人工智能特别火而Python是主要的语言基础,相信有很多前端后端的程序员们都在蠢蠢欲动,而对于有些本身就有java语言基础的人来说可能会在基础上浪费一大半时间,所以我在以我本人学习经验的基础上帮助大家以更少的时间搞懂python基础,等下会附上我项目地址,python在我的理解是基于java的思想变换写法,所以再有java基础的前提下再来看我这篇文章相信你会事 倍功半。

1.首先来讲一下paython基本数据类型,它与java不同之处在于python定义类型不需要指定(例如String,int之类的)例如java中我们需要一个String类型往往会这样写String a,而在python中直接可以写成a,你也可以认为a可以代表任何数据基本类型在python中String类型可以写成a="b",也可以写成a='b',双引号和单引号是一样的,在打印的时候使用这个就可以print('hello word'),python中空格是有语法形式的,所以我们写代码的时候一定要顶格从头写,而换行可以写成print('''hello word
               hello word
                   hello word'''),斜杠\n也可以达到换行的目的

下面讲一下format,这个记住就可以了,我举个了例子,例如

age=3
name="Toms"
print("{0} was {1} years old".format(name, age))这句话里的{0}和 {1}分别代表的是name和age,fromat是一种格式化字符串的函数,0和1分别代表format后面参数的位置

2.python中的集合

     2.1  list用法 

              number_list=[1,2,3,4,5,6,7,8],number_list里面可以写int 也可以写String混合使用,用法可以直接输出控制台print("list"+str(number_list))

             你要想删除一个list内容的话直接编写del number_list[0],del表示删除的意思

             list的截取:str(mix_list[1:],这句代码的意思是,在截取1后面的所有元素,下标从0开始,0表示第一位元素,在python中也可以反截取,例如我可以写成mix_list[:-1],               代      表的是从list最后一个开始截取,注意这时候下标从1开始。

     2.2 tuple用法   

            理解tuple:一个tuple可以写成mix_tuple=(1,2,['a','b']),tuble的值不能被改变,但是如果是里面嵌套了list之类的list是可以更改的,你要想知道tuple的长度很简单,跟list              一    样,例如我想获取mix_tuple就可以写成len(mix_tuple),那么tuple的值可以删除吗,这个前面已经说过了,tuple里的值是不能改变的,所以要想删除就直接删                     除整个    tuple,可以写成del mix_tuple,这样我们就删除了这个tuple

     2.3 词典

            理解词典:提到词典,这里你可以想象成java里的map,它跟map大同小异,只是写法不一样,例如我们创建一个词典mix_dict={'Tom':'boy',11:25,'boy':88},它是用大括              号表示的,提示(稍微注意一下括号是小括号,大括号还是中括号用以区分list,tuple,词典),mix_dict里面的类型也可以是String,int混合使用,至于取值是根据键去取的大              同小异,例如我们想取Tom里的值就可以写成mix_dict['Tom']),注意如果值是int类型的要转化成String,比如我们要取里面11的值25,这时候你就要写成str(11),你                      要 去出全部就可以写成str(mix_dict)

            你要想删除一个词典里的元素的话就可以写成del mix_dict['Tom'],删除整个就写成del mix_dict['mix_dict'],如果你想要清除这个词典的内容而不想把整个词典                               都删除了的话你就可以写成mix_dict.clear()

            词典添加和修改都是一样的mix_dict['heath']='888',如果词典里没有这个元素就可以添加,否则就会修改,词典里的键是唯一的,如果你一个词典里有两个相同的键那么             你就会被最后一个键替代。相当于你写了两个最后只有最后一个有用(是不是很通俗易懂)

 3.函数

       3.1 函数定义,我举个例子相比一大串的定义更加容易理解,例如有这样的一个函数

          d=90

         def sum(a,b):
             c=a+b
             d=60
            return c
          str(sum(1, 2)),sum是一个方法a和b都是参数,在方法冒号下面的就是方法的内容,sum(1, 2)是对方法的调用,str(sum(1, 2))是转化String,结合java方法定义,很容              易理解,python很灵活,所以在我的理解之下是对java的一  个简化,但是思想大多类似,python是完全支持面向对象编程,有一个需要注意的地方,例如上面的一个例               子,这时候d是一个全局变量,我们在方法里将d的局部变量改变成60,这时候外面调用d时,d是不会被改变的还是等于90,可以这样总结为全局变量不能被方法里的局             部变量改变

4.控制流   下面看这样一段代码

                number=30
              guess=int(input('请输入数字'))
             if guess==number:
                print('输入正确,答案为'+str(number))
            else :
                 print('输入错误请重新输入')
           for i in range(1,30):
              print(str(i))
            

input就是我们能在控制台手动打出字符,外面int就是指int;类型,下面的这些if else格式就是这样的没有括号,这里看下就明白就不多讲,至于for循环我解释一下,range代表的是1,30的范围之内,这里还有一种写法

        list=[1,3,5,6,0,19]
           for i in list:
               print(i)

这种写法指的是从list里的每一个元素按照顺序逐渐循环,相对java是不是很简便,不要爱上它大笑,这里讲到循环我就把循环都讲一下,还有一种是While,其实也大同小异

number=50

guess_flag=False

while guess_flag:
    guess=int(input("请输入一个值"))
    if guess==number:
        print('恭喜您猜对了,获得了女朋友一枚,答案为'+str(number))

        guess_flag=True
        break
    elif guess<number:
        print('很遗憾,您猜错了,请再往高点试试没有任何奖品,请重新输入')
        pass
        print('请继续')
 
    elif guess>number:
        print('很遗憾,您猜错了,请再往低点试试没有任何奖品,请重新输入')
        pass
        print('请继续')
 
    else :
        print('很遗憾,您猜错了,没有任何奖品,请重新输入')
        pass
        print('请继续')

格式就是这样的,代码贴出来相信你也看懂了,如果你想要写一个死循环就可以直接写成while True,讲条件改成True就可以了,关于循环还有一个需要注意的,它比java多一个,分别是continue,break,还有一个pass前面两个我就不多讲了,要是不明白就去复习一下java,至于pass其实这个的意思是跳过这一行继续执行下一行的代码,它与continue的不同之处是continue是跳出下面所有的内容执行下一个循环

下面我来讲一下文件的读写,看下面一段代码

#写入文件
str_book='''I love learning python
            because python is fun
            and also easy to use'''
f=open('mypython.txt','w')
f.write(str_book)
f.close()


这段代码含义是将str_book这个字符串写入文件mypython.txt中,open里的w表示写入,r表示读取,如果是读取的时候你也可以不写r默认就是读取,open里的第一参数还有一层意思,就是你可以指定文件路径前面可以加路径,如果不加就是默认的地址,在与你同一项目的py文件同一目录下,相对于java是不是很简单


#读入文件
f=open('mypython.txt','r')
while True:
    line=f.readline()
    if len(line)==0:
        break
    print(line)
f.close()


这里是一个读取文件的操作,首先不管是读取还是写入,都要open('mypython.txt','w')这段代码,readline指的是读取文件里的每一个元素,其它的都一样就不多讲了大笑


5.python的异常处理

try:
     
except OSError as err:
    print("OSError:{0}".format(err))
except ValueError:
    print("出现异常")

except代表的是哪一类异常,ValueError代表的是值异常,OSError 代表的是文件异常,例如文件不存在,至于其它异常可以自行百度,我这里就举个例子,到这里那么还有的同学就会问了,如果捕获不到的异常怎么处理呢,程序不就会崩溃了,这里我提供两种方法用来捕获所有异常

import traceback
try:
     print(8/0)
except:
    print("出现异常")

try: 
    print(8/0) 
except Exception as ex: 
   print("出现异常"+str(ex))


6. python面向对象编程,看以下代码

class Student:
    def __init__(self,name,grade):
        self.name=name
        self.grade=grade
    def myName(self):
        print(str(self.name)+str(self.grade))
    def myGrade(self,monment):
        self.grade=self.grade+monment
    
stu=Student('张三',98)
stu.myName()
stu.myGrade(10)
stu.myName()

这里我解释一下__init__,这个是一个固定的写法,指的是初始化函数,而self相当于我们java的this,myName,myGrade都是方法,还有一个值得注意的是,java里都是new一个Student,我们这里直接就可以用等号就可以创建一个Student对象了,其它都是一样的


7.装饰器

python装饰器,参数可以是函数,是python的一个特性,这与java不同,仔细看以下代码
 def myCake():
     return "a cake"
 def addCake(myCakes):
     def myStyle():
         return myCakes()+"style"
     return myStyle()
 asd=addCake(myCake)
 print(myCake())
 print(asd)

将myCake的返回值作为参数传入addCake方法里,在myStyle方法里添加了一个Style字符串作为返回值与myCake的返回值相加,最后得到addCake的返回值在控制台打印出来

python里还有一个独特的地方,那就是可以用@指定方法作为参数加入,直接省去了asd=addCake(myCake)这一段代码,例如

def addCake(myCakes):
    def myStyle():
        return myCakes()+"style"
    return myStyle()
@addCake
def myCake():
    return "a cake"

print(myCake)


7.图形界面介绍

图形界面指的是一个弹出框,让电脑弹出一个对话框,在最上面加入这几行代码用以导入类似我们java包之类的

from tkinter import *

import tkinter.simpledialog as dl
import tkinter.messagebox as wb

注意:as后面的只是简称可有可无,为了后面方便引用可以直接使用dl,wb

最后看具体实现

root=Tk()
w=Label(root,text='label Title')
#目的可以让标签自适应大小
w.pack()

wb.showinfo('welcome','welcome Message')

Label第一个参数是Tk对象,第二个是标题,showinfo是显示对话框,第一个是标题,第二个是内容,基于这些我们就可以写一个小游戏

root=Tk()
w=Label(root)
#目的可以让标签自适应大小
w.pack()
wb.showinfo('welcome','welcome Message')
#利用图形界面制作小游戏
while True:
    guess=dl.askinteger('竞猜游戏', '请输入一个数字')
    if guess==number:
        wb.showinfo('I love you','恭喜您才对了,答案为'+str(number))
        break
    elif guess<number:
        wb.showinfo('错误提示','很遗憾,您猜错了,请再往高点试试没有任何奖品,请重新输入')
        pass
        print('请继续')
 
    elif guess>number:
        wb.showinfo('错误提示','很遗憾,您猜错了,请再往低点试试没有任何奖品,请重新输入')
        pass
        print('请继续')
 
    else :
        wb.showinfo('错误提示','您猜错了,没有任何奖品,请重新输入')
        pass
        print('请继续')
这就是一个数字游戏,当你输入高或者低都会提示你让你重新输入,直到你输入正确为止。

好了,python的一些基础就到此为止了,如有不对欢迎指正!

下载地址:http://download.csdn.net/download/qq_33407981/10149704







原创粉丝点击