2018-07-24

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

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

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容