zoukankan      html  css  js  c++  java
  • Python初学者随笔Week1

    Python从入门到放弃

      本文主要是描述的是作为初学者对python学习的过程与经历分享,包括一些历程的分享与重要的时间节点记录,对于python学习的笔记与心得。

      如果你也是初学者,我们可以一起学习探讨python的知识与技术,欢迎各位博主对我的批评与指导,如果涉及版权等违规的问题,望谅解,小白不懂事。

      话不多说,以下开始分享自己个人学习的第一个总结!!!

    1.第一个python程序    

      编译器的安装与环境变量的配置我这里不做赘述,网上很多。

      作为第一个python程序,打印一个hello world是必须的,仪式感还是要有的,哈哈。

      python的打印是通过调用函数print进行的。

      打印Hello World的方式有很多种,以下只列举几种作为例子,供大家参考,程序代码如下:

    print("Hello World!")#或者另外一种标志符
    
    print('Hello World')
    
    str = "Hello World"
    print(str)

      以上为三种Hello的打印方式,大家可以试试。

    2.print函数的用法

    str = "Hello World"#字符串打印类型,参数传递法
    print(str)
    print("%s"%str)#参数引入法
    
    print("Hello World")#双引号中间添加要打印的字符串
    print('Hello World')#单引号和双引号的用法一样,没有区别
    
    Num = 5
    print(Num)
    print("%s"%Num)
    
    msg = '''#要打印的内容
    Hello World!
    My Name is Wang.....
    '''
    
    print(msg)#这种方法可以打印多行
    
    
    name = input("name:")
    age= input("age:")
    
    #字符串中打印变量方案1
    info1 = '''
    -------------info of '''+name+'''------------
    Name:'''+name+''' 
    Age:'''+age
    
    print(info1)
    
    #字符串中打印变量方案2
    info2 = '''
    -------------info of  %s------------
    Name:%s
    Age:%s
    ''' %(name,name,age) 
    
    print(info2)
    
    #字符串中打印变量方案3
    info3 = '''
    -------------info of {_name}------------
    Name:{_name}
    Age:{_age}
    ''' .format(_name=name,
                _age=age) 
    
    print(info3)
    
    #字符串中打印变量方案4
    info4 = '''
    -------------info of {0}------------
    Name:{0}
    Age:{1}
    ''' .format(name,
                age) 
    
    print(info4)           

      python为用户提供了多样化的打印方案,包括多行打印和单行打印,用户可以根据自己的需求进行选择。此处仅做一个归纳,如有错漏请多多包含与指正。

    3.if elif else语句

      python中if else的语句用法相较其他语言的用法相同,但是格式有一定差别请看以下例子进行分析  

    _username ="wang"
    _password = 123
    username = input("username: ")
    password = input("password: ")
    
    if _username ==username  and password == password:#循环判断条件不需要使用() 改成: 同时子语句编译器会自动进行换行缩进,如果没用需要用户自己进行缩进
        print("Welcome user {name} Login !").format(name = username))
    else:
        print("Invalid username or password !")

    4.while语句

      while循环语句与if循环语句的格式相同,没有()用:替代,请看以下例子

    i = 0
    while i<10:
        print("Num is %s"%i)#打印数字0-9

    5.模块初识

      import关键词用于模块的导入

      import sys其中sys是标准库中的函数可以直接引入后调用

      sys模块

        sys.path,寻找路径即:如果当前目录下有sys.py会到当前目录下寻找,如果没有当前目录下没有sys.path这个方法,在python2.0中会报错

        标准库在再lib里,用户自行安装的库在site-packages中

        sys.argv,打印脚本的相对路径

      os模块

        os.system('dir')打印cmd下的dir命令,此命令结果不能保存,直接输出的显示界面

        os.popen('dir')执行结果存到内存中的某块地址,通过read()方法读取数据

        cmd=os.popen('dir').read()此命令数据可以保存到变量中

        os.mkdir(“new_dir”)本目录下创建一个新的文件夹

      pyc文件

        python是一门面向对象的解释型语言。。。当我们在命令行输入python.py时,其实是激活了python的"解释器",:告诉解释器要开始解释工作了,但是在解释之前python会进行编译。所以也可以把python理解成先编译后解释的语言。

        PyCodeObject和pyc文件,PyCodeObject是python编译器真正的编译成果,python运行时先到目录中去寻找PyCodeObject文件,如果有则运行此文件,如果没有则生成此文件,程序运行结束时,python解释器将PyCodeObject写回到pyc文件中。程序第二次运行时,则会在硬盘中寻找pyc文件,找到直接载入,否则重复上述过程。

    6.数据类型

      整形:type(2**32) ,type查看数据类型,在python中没有长整型和整形的区分。

      浮点:小数包含浮点,8字节64位,52表示底,11位表示指数,1位符号位。

      布尔值:真或假,1或0

      字符串:“hello world”

      三元运算:a,b,c = 1,3,5  d = a if a > b else c

      进制:不做描述,呵呵(二进制,八进制,十进制,十六进制,不懂自己了解下)

      bytes类型:可以理解成二进制数据类型,与字符串是两回事。python3中对文本和二进制数据做了更清晰的区分,文本为Unicode由str类型表示,二进制数据则有bytes类型表示

        转换:'@20'.encode(encoding=’utf-8’)将utf-8类型的字符串转换成二进制类型,二进制编码.decode(encoding=utf-8')二进制编码转换成字符串类型

    7.列表

      列表取值操作

        例子:Num=[1,2,3,4,5,6,7,8]

        print(Num)

        print(Num[0-N])#取值从0开始

        print(Num[1:5])#取到的值为顾头不顾尾,实际取到值为下标1-4,4个数。切片操作

        print(Num[:-1])#打印从头到尾的数据

      列表元素增加操作:

        Num.append(6)某未添加元素操作

      列表元素插入操作:

        Num.insert(0,1)

      列表元素修改操作:

        Num[2]=5

      列表元素删除操作:

        Num.remove(6)

        del Num[3]

        Num.pop()不输入下标则默认删除最后一个元素,输入下标则删除下标相应位置的元素

      列表元素查找操作:

        Num.index(6)#输入要查找的元素,返回元素位置的下标

      列表元素个数统计操作:

        Num.count(6)#统计元素6出现的次数

      列表清空操作:

        Num.clear()

      列表反转操作:

        Num.reverse()

      列表排序操作:

        Num.sort()

      列表拼接操作:

        Num.extend([1,2,3])#列表的合并

      列表删除操作:

        del Num

      列表copy:

        浅copy:

          列表的复制有两种即,深copy和浅copy,浅cpoy只cpoy第一层,举个例子:

          Num =[1,2,[1,2],3,4,5,6,7,8,9,5,6,7,8]

          Numcopy = copy.cpoy(Num) = Num.cpoy()=list(Num)=Num[:]

          Num[0]=2时,Numcopy =[1,2,[1,2],3,4,5,6,7,8,9,5,6,7,8]

          Num[2][0]=5时,Numcopy =[1,2,[5,2],3,4,5,6,7,8,9,5,6,7,8]

          可以理解为列表中嵌套的列表[1,2]cpoy到Numcopy的值为指针。这种复制方式就叫做浅cpoy。

          浅cpoy:Numcopy = Num.copy()

    注意这里要与直接赋值作对比,直接赋值列表是通用一块地址空间

    例如:Nums=Num,Num[0]=0时,则Nums[0]=1

         深度cpoy:

          NumDeepCopy=copy.deepcopy(Num)#此方法会独立的复制两份列表,深copy的使用要注意,防止内存滥用,浪费内存空间。

      列表的循环操作:

        for i in Num:

          print(i)#打印所有列表元素

      列表按照步长切片:

        Num=[::2]#按照步长切片

    7.元组

      Num=(‘wang’,‘xing’,‘wei’)

      元组的查询操作

      Num.index('wang')#输入要查找的元素,返回元素位置的下标

      Num.count(‘w’)#统计某个字符出现的次数

    8.字符串的常用操作

    name = "my name is wang"
    print(name.capitalize())#字符串的字一个字母是否为大写
    print(name.count('m'))#统计某个字符出现的个数
    print(name.center(50,'-'))#数据长度小于50个字节,name放中间,两边补符号'-'
    print(name.endswith('g'))#判断是否是以某个字符串或字符结尾
    print(name.expandtabs(0))#把/t用空格替代,默认为8个空格
    
    print(text.decode())#转换成utf-8编码类型
    print(name.find('m',2))#查找某个字符第一次出现的位置,后面接的参数是第几次出现
    print(','.join(['1','2','3']))#列表中加上某个字符,组成字符串
    print(name.rjust(50,'-'))#数据长度小鱼50个字节,name放在左边,右边补符号'-'
    
    print(name.ljust(50,'-'))
    print(name.lower())#字符串所有的单词大写变小写
    print(name.lstrip())#去掉左边的空格或者
    print(name.maketrans())#用于加密的奇特算法
    print(name.partition(' '))#字符串切分
    print(name.rsplit(' '))#根据空格来切片
    print(name.rfind('m'))#从右边向左边数,m出现的索引
    print(name.replace('m','M'))#字符替换
    print(name.rindex('m'))#反向查找
    print(name.rpartition(' '))#反向切分
    print(name.rstrip('
    '))#删除字符串末尾的字符
    print(name.rpartition(" "))
    print(name.rindex('m'))#反向查找
    print(name.rstrip('wang'))#删除末尾字符串或者字符
    
    print(name.swapcase())#所有字符大小写反转
    print(name.splitlines())#按照RN RN分割
    print(name.split())#空格换行字符表space 
     	
    print(name.startswith('m'))#是否字符串是以什么开头的
    print(name.endswith('wang'))#字符串是否以什么结尾
    print(name.strip('m'))#删除首字母
    
    print(name.title())#所有字符的头部都变成大写
    print(name.upper())#所有字符全部换成大写
    print(name.zfill(50))#左边补0

    9.字典

     info={

      1:"wangxingwei",

      2:"koujie",

      3:"linwenchang"}

      字典的添加:

        info[3]="chenshaoyong"

      字典的删除:

        del info[0]

        info.popitem()#随机删除

        info.pop(0)

      字典的修改:

        info[0]="chenshaoyong"

      字典的查询:

        info[0]#当获取的元素不存在时,编译器报错

        info.get(0)#输入错误时,不会报错

      判断某个键是否存在于字典中:

        0 in info#如果存在则返回True否则返回False

      字典查询所有键:

        info.keys()

      字典查询所有键值:

        info.values()

      字典添加方法:

        info.setdefault()#先到字典中查询,如果存在返回,不存在添加

      字典的update():

        合并,把一个字典合并到另外一个字典中,如果有键重复,则覆盖

      字典转换成列表:

        info.items()

      字典循环:

        for i in info:

          for(i,info(i))# i 字典的键,字典的值info(i)

        for i,v in info.items():

          print(i,v)#把字典转换成列表,然后在打印

      字典的fromkeys

        例子: c= dict.fromkeys([6,7,8],[1,{"name":"wangxingwei"},333])

        print(c)

        c[7][1]["name"] = "koujie"

        print(c)

        此时的键6,7,8三个name值全部改成了koujie

        创建一个字典并赋予一个初始化的值,一份列表数据地址内存,全部赋值给三个键,使用多层字典时,需要注意。

      

  • 相关阅读:
    LUA脚本中的方法使用冒号和点,以及调用者使用冒号和点
    Lua类对象的继承
    Lua类对象和类对象的单例
    toLua使用protobuf协议转Lua表
    关于Lua表的弱引用
    Lua-面向对象中函数使用时冒号(:)和点(.)的区别
    Python【day 14-5】sorted filter map函数应用和练习
    Python【day 14-4】sorted filter map+递归文件夹+二分法查找
    Python【day 14-3】二分法查找
    Python【day 14-2】递归遍历文件夹
  • 原文地址:https://www.cnblogs.com/wangxingwei/p/9317812.html
Copyright © 2011-2022 走看看