设为首页 收藏本站
查看: 1017|回复: 0

[经验分享] Python初体验之基础语法(一)

[复制链接]

尚未签到

发表于 2015-11-29 07:16:24 | 显示全部楼层 |阅读模式
  所有测试语句基于Python 2.7.3 , Ubuntu 12.04
  自学Python,如果哪里说的不对,还请指正。谢谢。
  示例绝大部分来自博客园vamei的python教程

1.输出语句print()



#!/usr/bin/env python
#coding=UTF-8
#默认python编码是ASCII编码 要支持中文
#加上coding=UTF-8的声明
#输出语句
print '你好 Python !!'
DSC0000.png
  打印一条语句,用单引号双引号都可以,但不能混用单引号和双引号。
  语句结束也不必加;分号作为结束,加上分号也不影响。
  
  如果你想输出的内容中既包含单引号,又有双引号,该这么办呢,
  这时候就需要使用转义字符了,转义字符\可以转义很多字符,
  比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\



print 'I\'m a \"dog\"!'
  像上边这样,使用转义字符 \'  \"  ,输出 I'm a "dog" !
  
  如何从命令行接收字符串,只需调用 raw_input() 即可



name = raw_input('please enter your name: ')
print 'name=', name
  

2.条件选择语句 if elif else
  以下代码不再重复 #!/usr/bin/env python  #coding=UTF-8



#条件选择语句
if(3>3):
a = "Are you happy???"
elif(2>3):
a = "bbbbbbbbb"
else:
a = "cccccccc"
print a;
DSC0001.png
  python最具特色的indent缩进语法,以4个空格表示所属关系,使用:包含语句块摒弃大多数编程语言的{}
  不必给元素设类型,Python自动给你设置类型,其中elif表示else if.
  关于到底是用Tab键还是用4个空格,我觉得把tab键设置成4个空格,这个问题不就没有争议了吗?不知道对不对。
  

3.循环语句



#循环语句
for a in [1,2,3,[4,5]]:
print a
DSC0002.png
  循环语句,有点类似C#和Java的foreach 循环。 其中list中的子元素还可以是list, index下标也是从0开始
  

4.函数定义 def



#函数定义  是否为闰年
def isLeafYear(year):
return year%400==0 or (year%100!=0 and year%4==0)
print isLeafYear(2004)
DSC0003.png
  函数定义,以关键字def作为标识。其中 or 关键字类似 ||   , and关键字类似&&
  



#函数定义 return可以返回多个值
def square_sum(a,b):
c = a**2 + b**2
return c,a,b
print square_sum(1,3)
DSC0004.png
  return可以返回多个值,这个挺有特点,Java语言里应该不可以。
  



#将表b作为参数传递给函数
b=[1,2,3]
def change_list(b):
b[0] += 1
return b
print change_list(b)
print b
DSC0005.png
  通过表索引操作表,表b的值发生改变。
  



#值传递 原整数a的值不发生变化  试着将函数的参数换成b或者c就可以理解了。
a = 1
def change_a(a):
a = a + 1
return a
print "函数的返回值是:",change_a(a)
print "原整数a的值是:",a
DSC0006.png
  

5.类定义 面向对象



#定义一个父类 鸟类
#类中成员方法的第一个参数必须是调用该方法的对象本身
#习惯上使用self,也可使用it、this等等
#括号中为object是不是说明所有的类都是继承自Object ??
class Bird(object):
#有点类似构造函数  是两个下划线init
def __init__(self,something):
print 'I am a bird.',something   
have_feather = True
way_of_reproduction = 'egg'
def move(self,dx,dy):
position = [0,0]
position[0] = position[0] + dx
position[1] = position[1] + dy
return position
#生成一个叫夏天的小鸟的对象 这里不需要用类似高级语言的new关键字
summer = Bird('call me summer!')
print summer.way_of_reproduction
print summer.move(1,2)
DSC0007.png
  

6.继承
  子类继承父类:



#子类小鸡继承父类 鸟类 (单继承)
class Chicken(Bird):
way_of_move = 'walk'
possible_in_KFC = True
#子类大雁继承父类 鸟类 (单继承)
class DaYan(Bird):
def __init__(self,name):
self.name = name
way_of_move = 'fly'
possible_in_KFC = False
#重写父类move方法
def move(self,dx,dy):
position = [0,0]
position[0] = position[0] + dx**dx
position[1] = position[1] + dy**dy
return position
def print_name(self):
print "My name is ",self.name
#现在summer是大雁了
summer = DaYan("doudou!")
print summer.print_name()
print summer.have_feather
print summer.move(2,3)
print dir(summer)  #dir() 用来查询一个类或者对象的所有属性
  

7.增强类中对运算的支持



#自定义list子类 添加对类似 [1,2,3] - [2,3]运算的支持
#这种自带两个__下划线的方法 是特殊方法
class SuperList(list):
def __sub__(self,b):
#self是SuperList的对象,可以使用类似 list[:] 的方式表示整个list对象
a = self[:]
b = b[:]
#如果list包含b中的元素,就移除,直到循环结束 len()返回list中元素个数
while len(b) > 0 :
element_b = b.pop() #pop() 从list中弹出最后一个元素值,并返回他的值
if element_b in a :
a.remove(element_b)
return a
#这里的-减号运算符代表__sub__() 方法,类似+ 代表__add()__
#特殊方法和运算符相等价
print SuperList([1,2,3,4]) - SuperList([1,2])
DSC0008.png
  

8.字典类的使用



#词典(dictionary)类 容器类 使用大括号
dic = {} #空的词典
print dic,type(dic)
dic = {'name':'zhaowuji','age':21,'wife':'zhaomin'}
#元素是键值对 无序 通过key值来得到value
print dic['name'],dic['wife']
#添加新元素。引用一个新的键,赋值。 出自倚天屠龙记
dic['from'] = 'yitiantulongji'
print dic
#词典元素的循环调用
for key in dic:
print key,':',dic[key]
#词典常用方法
print (len(dic))    #查询词典用元素个数
print dic.keys()    #返回所有key的值 list
print dic.values()  #返回所有value的值 list
print dic.items()   #返回dic所有的元素
###删除方法###
del dic['name']     #del 是python的关键字 用于删除对象
print dic
###删除元素###
print dic.clear()   #清空dic,变为空的词典{}
DSC0009.png

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-144735-1-1.html 上篇帖子: Python格式化字符串 下篇帖子: python极客学院爬虫V1
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表