Python基础篇:从0开始学python

目录

  1. 基本数据类型
  2. 用户交互input的使用
  3. 主文件的概念和用途
  4. 对象
  5. 整形Int的内置方法
  6. 字符串Str的内置方法
  7. 条件语句和循环
  8. 未完待续

  1. 基本数据类型

    • 数字【整型int/long,浮点型float/complex】

      • Python3已经把int和long整合了, 相互转化会自动进行
      • int在32bit机器32位宽,64bit机器64bit宽。
      • i=1 ; j=int(10)
    • 字符串string
      • myname="ben" ; yourname=str("Jin")
    • 布尔boolean
      • True或者False  分别对应1和0  注意大小写
      • bool(0);bool(42);bool(‘this is a test‘)
    • 列表list
      • L=[123,’abc’,1.23]
      • L=list(123,’abc’,1.23)
    • 元组tuple
      • T=(1,2,3)
      • T=tuple(L)
    • 字典dict
      • D={‘food’:’Spam’, ‘quantity’:4, ‘color’:’pink’}
      • D=dict(name=’Bob’,age=’42’)
    • 集合set
      • S=set([1,2,3])
    • 日期date
      • import datetime; d=datetime.datetime(2016,11,05)
  2. 用户交互input

    • 应用有时候需要和用户进行交互才能继续进行,比如用户的登陆。input的使用就是这种场景的关键
    • 场景:用户进行登陆时需要输入用户名和密码,如果用户三次登陆失败则账号被锁定。

      开发:需要两个基本的文件:1.用户账号密码 2.黑名单

    • #!/usr/bin/env python3
      
      ##登陆代码
      
      locked=open("locked.dat","r")
      logon=open("logins.dat","r")
      
      print("欢迎来到xxx,请输入用户名和密码!")
      username=input("请输入用户名:")
      for line in locked:
          if(line.strip()==username):
              print("账户已经被锁定!如需解锁请联系管理员!")
              locked.close()
              exit(0)
      
      passwd=input("请输入密码:")
      
      ##验证登陆密码
      
      for time in range(3):
          time+=1
          if(time==3):
              print("三次机会已用完,账户被锁定,如需解锁请联系管理员!")
              lock=open("locked.dat","a")
              lock.write(username+"\n")
              lock.close()
              logon.close()
              exit(0)
      
          for line in logon:
              if(username==line.strip().split()[0] and passwd==line.strip().split()[1]):
                  print("登陆成功!")
                  logon.close()
                  exit(0)
      
          passwd=input("请第"+str(time+1)+"次输入密码:")
  3. 主文件

    • 场景: 当在import某个python文件之后 但是并不想执行该文件的某些部分。

      解决: python内置变量__name__, 来代表模块的名字。如果该模块是被导入的,__name__的值为模块名字,如果该模块是被直接执行,__name__的值为‘__main__‘

      1. 定义一个模块model.py,里面含有一个 if(__name__==‘__main__‘), 运行时候会运行后面的main方法

      #! /usr/bin/env python3
      
      print("这里是model")
      
      def main():
          print("这里是model.main")
      def test():
          print("这里是model.test")
      
      if(__name__==‘__main__‘):
          main()
      
      =================================
      返回结果:
      这里是model
      这里是model.main

      2. 定义一个mypython.py,引用model.py,运行的时候并没有运行main

      #! /usr/bin/env python3
      
      import model
      
      model.test()
      
      =====================
      返回结果
      这里是model
      这里是model.test

      大多时候使用 __name__==‘__main__‘ 来做测试,把测试的代码放在这里在别的代码引用次模块时候测试代码不会运行。

  4. 对象

    • python中一切都是对象。 对象是通过类来实现的。

      当声明变量病赋值实际上是通过类来创建一个对象在内存中,并赋值。每一个对象都拥有很多的方法,如果这些方法是绑定在对象上的那么会有很多很多重复的方法被存下来,浪费内存空间。所以我们在创建对象的时候并没有创建那么多重复的方法绑定在对象上,而只是讲这些方法提取出来放在一个地方,对象上只是存着这个地方的地址。而这个地方就是我们定义的类。

  5. 整形Int的内置方法

    • Int是整形数据类型的一种。int类型的变量可以通过i=5或者i=int(5)两种方式。

      i=5
      print("i的值是%d,类型是%s" %(i,type(i)))
      
      j=int(10)
      print("j的值是%d,类型是%s" %(j,type(j)))
      
      =================================
      返回结果:
      i的值是5,类型是<class ‘int‘>
      j的值是10,类型是<class ‘int‘>
    • int类型的对象也有着自己的方法,(方法存在int类中存储)

      1. bit_length  二进制的最小位数的长度

      i=5 ##二进制是101
      print(bin(i))
      print(i.bit_length())
      
      =======================
      返回结果:
      0b101
      3

      2.__abs__ 绝对值 等同内置方法 abs()

      i=-5
      print(i.__abs__())
      print(abs(i))
      ================
      返回结果
      5
      5

      3. __add__ 加法  等同于+

      i=-5
      print(i.__add__(6))
      print(i+6)
      =======================
      返回结果
      1
      1

      4. __and__ 等同于&

      i=2
      j=1
      print(i.__and__(j))
      print(i&j)
      ====================
      返回结果
      0
      0

      5. __bool__ 转换成布尔值 0是False 其他的都为True

      i=-2
      j=-1
      k=0
      l=1
      m=2
      n=1.2
      print(i.__bool__())
      print(j.__bool__())
      print(k.__bool__())
      print(l.__bool__())
      print(m.__bool__())
      print(n.__bool__())
      =======================
      返回结果
      True
      True
      False
      True
      True
      True

      6.__divmod__ 商和余数 等同于/和%

      k=95
      l=10
      print(k.__divmod__(l))
      ===================
      返回结果:(9,5)

      7.__eq__(=), __ge__(>=),__gt__(>),__le__(<=),__lt__(<)

      8.__floot__   转成floot类型

      9.__floordiv__ 地板除 等同于//  是除法取整数

      k=95
      l=10
      print(k/l)
      print(k.__floordiv__(l))
      ========================
      返回结果:
      9.5
      9

      10.__int__ 构造方法 就是在类初始化时候用:

      class Person(object):
        def __init__(self):
            self.name = ‘Jim‘
            self.age = 23
      if __name__ == ‘__main__‘:
         person = Person()
         print person.name
         print person.age
  6. 字符串str的内置方法

    • 字符串是很重要的一种数据类型,今天我们就一起来看str的内在。

      1. 字符串的声明

      myname="ben"
      yourname=str("Jin")
      
      print("myname的值是%s,类型为%s" %(myname,type(myname)))
      print("yourname的值是%s,内部成员为%s" %(yourname,dir(myname)))
      ==========================================
      返回结果:
      myname的值是ben,类型为<class ‘str‘>
      yourname的值是Jin,内部成员为[‘__add__‘, ‘__class__‘, ‘__contains__‘, ‘__delattr__‘, ‘__dir__‘, ‘__doc__‘, ‘__eq__‘, ‘__format__‘, ‘__ge__‘, ‘__getattribute__‘, ‘__getitem__‘, ‘__getnewargs__‘, ‘__gt__‘, ‘__hash__‘, ‘__init__‘, ‘__iter__‘, ‘__le__‘, ‘__len__‘, ‘__lt__‘, ‘__mod__‘, ‘__mul__‘, ‘__ne__‘, ‘__new__‘, ‘__reduce__‘, ‘__reduce_ex__‘, ‘__repr__‘, ‘__rmod__‘, ‘__rmul__‘, ‘__setattr__‘, ‘__sizeof__‘, ‘__str__‘, ‘__subclasshook__‘, ‘capitalize‘, ‘casefold‘, ‘center‘, ‘count‘, ‘encode‘, ‘endswith‘, ‘expandtabs‘, ‘find‘, ‘format‘, ‘format_map‘, ‘index‘, ‘isalnum‘, ‘isalpha‘, ‘isdecimal‘, ‘isdigit‘, ‘isidentifier‘, ‘islower‘, ‘isnumeric‘, ‘isprintable‘, ‘isspace‘, ‘istitle‘, ‘isupper‘, ‘join‘, ‘ljust‘, ‘lower‘, ‘lstrip‘, ‘maketrans‘, ‘partition‘, ‘replace‘, ‘rfind‘, ‘rindex‘, ‘rjust‘, ‘rpartition‘, ‘rsplit‘, ‘rstrip‘, ‘split‘, ‘splitlines‘, ‘startswith‘, ‘strip‘, ‘swapcase‘, ‘title‘, ‘translate‘, ‘upper‘, ‘zfill‘]
      2. __init__  构造方法 yourname=str("Jin")生成对象的时候运行的就是__init__

      3.__contains__ 是否包含

      myname="Ben"
      result=myname.__contains__("en")
      print(result)
      ===========================
      返回结果:True

      4.__getattribute__ 反射 无条件被调用,通过实例访问属性。如果class中定义了__getattr__(),则__getattr__()不会被调用(除非显示调用或引发AttributeError异常)

      5. __getitem__  dic[1]实际执行的就是字典的__getitem__方法

      6. capitalize首字母大小写

      myname="ben"
      result=myname.capitalize()
      print(result)
      ===================================
      运行结果
      Ben

      7. casefold 跟lower类似,讲字符串变成小写,不过不只是针对ASCII,也可以将一些德文之类的变成小写。汉语 & 英语环境下面,继续用 lower()没问题;要处理其它语言且存在大小写情况的时候再用casefold()

      8. center 将字符串居中,并用其他字符包围

      myname="ben"
      result=myname.center(20,"*")
      print(result)
      ===========================
      返回结果:
      ********ben*********

      9. count 计算字符串的一部分出现的次数

      myname="benbenben"
      result=myname.count("ben",2,9)
      print(result)
      =========================
      返回结果:2

      10. endwith 判断是否以某字符串结尾

      myname="benbenben"
      result=myname.endswith("ben",2,9)
      print(result)
      ==============================
      返回结果: True

      11. encode

      myname="陈真"  ##utf8
      result=myname.encode("gbk") ##内部是先转成unicode 然后转成gbk
      print(result)
      =================================
      返回结果:b‘\xb3\xc2\xd5\xe6‘
  7. 条件语句和循环

    • 条件语句: if... elif... else

      循环语句: while for

      退出:break continue return exit pass

      应用场景:三级菜单 输入城市序号进入该菜单 输入b返回 输入q退出

      #!/usr/bin/env python3
      
      import os
      import sys
      
      ‘‘‘
      制作一个三级菜单
      山东
         日照
             东港
             岚山
         五莲
      ‘‘‘
      
      def showcd(dir):
          ‘‘‘
          :param dir: 要去的目录
          :return: 返回要去的目录下的列表
          ‘‘‘
      
          if (os.path.exists(dir)):
              dirlist = os.listdir(dir)
              num = 1
              for dirname in dirlist:
                  print("%s.%s" % (num, dirname))
                  num += 1
              print("请输入b返回或者q退出")
              return dirlist
      
      dir = os.getcwd()
      dirlist = showcd(dir)
      
      while(True):
          city=input("请输入:")
          if(city=="q"):
              exit(0)
          elif(city=="b"):
              dir=os.path.dirname(dir)
              dirlist=showcd(dir)
          elif(os.listdir(dir+"/"+dirlist[int(city)-1])):
              dir=dir+"/"+dirlist[int(city)-1]
              dirlist = showcd(dir)
          else:
              print("已经没有下级城市")
时间: 2024-12-17 01:06:25

Python基础篇:从0开始学python的相关文章

python基础篇(二)

python基础篇(二) if:else,缩进和循环控制 A:if的基础格式和缩进 B:循环判断 C:range()函数和len()函数 D:break,contiue和pass语句 for,while循环 函数基础 A:函数的定义和返回值 B:返回值的三种情况 C:函数的注释 函数的进阶(命名空间和作用域) A:内置命名空间 B:全局命名空间 C:局部命名空间 D:全局作用域 E:局部作用域 F:函数的嵌套和作用域链. G:函数名的本质 闭包 ?一:if:else和缩进 A:if的基础格式和缩

Python基础篇(八)

key words:私有变量,类静态变量,生成器,导入Python模块,r查看模块可以使用的函数,查看帮助信息,启动外部程序,集合,堆,时间模块,random模块,shelve模块,文件读取等 >>> class Rectangle: ...     def __init__(self): ...         self.__width = 0 ...         self.__height = 0 ...     def setSize(self,width,height): .

问道python之基础篇【一】 认识python

问道python之基础篇[一] 认识python 1.python的简介 1.1.什么是python? Python是一种面向对象.解释型计算机程序设计语言,由Guido van Rossum于1989年发明,第一个公开发行版发行于1991年. Python语法简洁清晰,特色之一是强制用空白符作为语句缩进. Python具有丰富和强大的库.它常被昵称为胶水语言,能够用其他语言制作的各种模块(尤其是C++)很轻松地联结在一起. 1.2.python的特点 简单,易学,免费.开源,高层语言,移植性,

Python基础篇(七)

加上两个下划线变量或者方法变为私有. >>> class Bird: ...    __song = "spark" ...    def sing(self): ...       return self.__song ... >>> b = Bird() >>> b.sing() 'spark' >>> b.__sing() Traceback (most recent call last): File &qu

Python基础篇(六)

retun空值,后面的语句将不再被执行 >>> def test(): ...    print("just a test!") ...    return ...    print("will not be print") ... >>> test() just a test! 和Java类似,在传递参数时,当参数是字符串,元组时,传递的其实是拷贝,修改实际参数不会影响到形式参数.当参数是对象时,修改实际参数将会影响到形式参数.

Python基础篇(五)

bool用于判断布尔值的结果是True还是False >>> bool("a") True >>> bool(3) True >>> bool("") False >>> bool(0) False Python中的elif类似于Java中的elseif >>> number = (int)(input("input a number: ")) input

工程脚本插件方案 - c集成Python基础篇

工程脚本插件方案 - c集成Python基础篇 序: 为什么要集成脚本,怎么在工程中集成Python脚本. 在做比较大型的工程时,一般都会分核心层和业务层.核心层要求实现高效和稳定的基础功能,并提供调用接口供业务层调用的一种标准的框架划分.在实际中根据需求会拆分的更细. 外部的表现形式就是一个核心动态库,带着一堆业务业务动态库.通过一个调度程序把这些链接起来,外加一堆配置文件,就形成一个完成的项目. 这种模式在一个团队开发中,工作职责比较容易划分.制定API接口后,开发工作基本可以并行实现,包括

python基础篇(五)

python基础篇(五) 算法初识 什么是算法 二分查找算法 ?一:算法初识 A:什么是算法 根据人们长时间接触以来,发现计算机在计算某些一些简单的数据的时候会表现的比较笨拙,而这些数据的计算会消耗大量计算机资源,而且耗时,这个时候就有人对这类计算编写了一些策略,这些策略就是算法.这些策略会加快数据计算时间,大大减少计算机的资源消耗. 在长时间人们编写代码的工作中,一些优秀的算法就被流传下来,但是不是所有的算法都能实现目的一步到位的工作,它只能减少你的代码,提高工作效率,随着知识的不断积累,你会

老王python基础篇--python, 视频, 教程, 视频教程, 基础

老王python基础篇 基础篇11-python基本数据结构-元组和集合.rar 基础篇19-python语句与数据结构应用.rar 基础篇21-文本操作应用.rar 基础篇3-虚拟机安装xubuntu开发环境.rar 基础篇17-python语句1.2.rar 基础篇10-python基本数据结构-列表应用.rar 基础篇9-python基本数据结构-列表.rar 基础篇5-python基本数据类型讲解1.1.rar 基础篇18-基础篇综合习题.rar 基础篇8-python基本数据类型习题解

python基础篇

python基础篇 变量命名 >>> name_value='freddy' 1 >>> name_value=freddy 2 Traceback (most recent call last): 3 File "<stdin>", line 1, in <module> 4 NameError: name 'freddy' is not defined **变量的值如果是字符串必须要加引号,否则定义变量会报错 (因为他把变