zoukankan      html  css  js  c++  java
  • Python基础总结(3)

    一、python的基本说明。

      之前我大致的涉猎了python的一些语法概念,发现了python的强大之处,由此我们来真正的走一下python,体验这个从零到一的过程。

            Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。

    当你用一种语言开始作真正的软件开发时,你除了编写代码外,还需要很多基本的已经写好的现成的东西,来帮助你加快开发进度。比如说,要编写一个电子邮件客户端,如果先从最底层开始编写网络协议相关的代码,那估计一年半载也开发不出来。高级编程语言通常都会提供一个比较完善的基础代码库,让你能直接调用,比如,针对电子邮件协议的SMTP库,针对桌面环境的GUI库,在这些已有的代码库的基础上开发,一个电子邮件客户端几天就能开发出来。

      Python就为我们提供了非常完善的基础代码库,覆盖了网络、文件、GUI、数据库、文本等大量内容,被形象地称作“内置电池(batteries included)”。用Python开发,许多功能不必从零编写,直接使用现成的即可。

      再说说Python的缺点:

      任何编程语言都有缺点,Python也不例外。优点说过了,那Python有哪些缺点呢?

        第一个、缺点就是运行速度慢,和C程序相比非常慢,因为Python是解释型语言,你的代码在执行时会一行一行地翻译成CPU能理解的机器码,这个翻译过程非常耗时,所以很慢。而C程序是运行前直接编译成CPU能执行的机器码,所以非常快。

        第二个、缺点就是代码不能加密。如果要发布你的Python程序,实际上就是发布源代码,这一点跟C语言不同,C语言不用发布源代码,只需要把编译后的机器码(也就是你在Windows上常见的xxx.exe文件)发布出去。要从机器码反推出C代码是不可能的,所以,凡是编译型的语言,都没有这个问题,而解释型的语言,则必须把源码发布出去。

    二、python基本语法。

      1, python 的输入输出

    #print('hello world') 输出一个字符串

    #print("hello ", "world") 输出多个字符串

    #100+300 再命令行才会有计算结果,这里不会

    #print(100+300) 输出400

    '''
    name = input()
    print(name)  输出一个字符串,回车结束
    '''

    '''
    name = input("
    请输入一个字符串:\n")
    print(name)  
    对输入进行提示,\n转义换行
    '''

      2,python的基础。

      2.1格式处理

      Python的语法比较简单,采用缩进方式,写出来的代码就像下面的样子:

    '''
    a = 100
    if a > 0 :
        print(a)
    else:
        print(-a) 选择语句
    '''

      2.2数值计算

      请务必注意,Python程序是大小写敏感的,如果写错了大小写,程序会报错。

      整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的(除法难道也是精确的?是的!),而浮点数运算则可能会有四舍五入的误差。

       print(100/3)

      结果:33.333333333333336

      2.3字符串处理

      print('i am a "boy"')

      结果:i am a "boy"

      如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python还允许用r''表示''内部的字符串默认不转义,可以自己试试:

      print(r'\n')

      结果:\n

      print('''line
      line
      line'''
    )

      结果:   

      line

      line

      line

    三、编码。

             对于编码的历史就不一一赘述了,ascii –> Unicode –> utf-8

             计算机内存中使用的是Unicode,但是在文本中大量使用utf-8。

      1,相关用法

      计算ascii值:

      print(ord('A'))

      结果:65

      通过ascii打印字符:

      print(chr(65))

      结果:A

      print(b'abd'.decode('ascii')) 这里的abd受b的字符串前面b影响,采用字节存储,这里就是3个字节,

      print(len('123'))#计算的是字节数

      结果:3

             在linux下,如下注释会告诉os如何编码等等,windows会忽略这些注释

      #!/usr/bin/env python3
      # -*- coding: utf-8 -*-

      2,格式化输出。

      print("我是 %s ,您好呀%s"%('您的朋友',"小D"))

      结果:我是 您的朋友 ,您好呀小D

      print("我是{0},你好呀{1}".format('您的朋友','小D'))

      结果:我是您的朋友,你好呀小D

    四、list与tuple。

             1,list类似于其他语言是一种数据类型。

      number = ['one','two','three'] #初始化列表
      
    print(number[0]) #输出第一个元素
      
    number.append('four'#追加
      
    print(number) #输出列表
      
    print(number[3]) #添加成功后可以访问索引3
      
    print(number[-1]) #索引最后一个元素
      
    number.insert(1,"one point five") #插入一个元素
      
    print(number)
      number.pop(1) #不写索引就是删除末尾的元素
         
    number.append(['2',3]) #list 中可以放另一个list
      
    print(number)

      2,tuple叫做元组,一旦确定下来就不可以改变。

      names = ('小明','小红','小花','小丽',['s',3])
      print(names)
      print(names[-1])#同样可以通过索引来寻找元素
      
    names[4][1] += 3
      print(names[4][1]) #这里改变的是列表,而tuple的指向没变

    五、逻辑结构

      a = input("please input a number : \n")
      a = int(a)
      sum = 0
      for b in range(a) : #for循环
        
    if b % 2 == 0 : #条件判断
           
    sum += b
      print(sum)
      b = 0
      while sum > 0: #循环结构,while
          
    b += sum
          sum /= 2
      print(b)

    六、dict 与 set。

      1,dict既是字典,在其他语言中也叫map,是采用键值对的方式存储数据。

      grade = {'lilei':97,'hanmeimei':95,"join":87} #双单引号没影响
      
    print(grade['join'])
         grade['mike'] = 86 #添加键值对
      
    print(grade['mike'])
      grade['lilei'] = 98 #修改
      
    grade.pop('mike') # 删除

      2,set与dict实现一样,只是没有值,其中存储的全是键,以保证元素不重复。

      ***不可变元素,永远不可变,方法创建新对象,保证变化的不是自己本身。

  • 相关阅读:
    容器跨主机网络通信学习笔记(以Flannel为例)
    Kubernetes控制器Job和CronJob
    记一次使用Flannel插件排错历程
    Kubernetes控制器Deployment
    Kubernetes如何通过StatefulSet支持有状态应用?
    react18 来了,我 get 到...
    gojs 实用高级用法
    vuecli3 vue2 保留 webpack 支持 vite 成功实践
    calibre 报错 This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem. 解决
    unable to recognize "*.yaml": no matches for kind "RoleBinding" in version "rbac.authorization.k8s.io/v1beta1"
  • 原文地址:https://www.cnblogs.com/luohuayu/p/8845997.html
Copyright © 2011-2022 走看看