zoukankan      html  css  js  c++  java
  • python学习笔记-基础、语句、编码、迭代器

    #python的优缺点
    优点:Python简单优雅,尽量写容易看明白的代码,尽量写少的代码。
    缺点:第一个缺点就是运行速度慢,和C程序相比非常慢,因为Python是解释型语言,你的代码在执行时会一行一行地翻译成CPU能理解的机器码,这个翻译过程非常耗时,所以很慢。而C程序是运行前直接编译成CPU能执行的机器码,所以非常快。
    第二个缺点就是代码不能加密。如果要发布你的Python程序,实际上就是发布源代码,这一点跟C语言不同,C语言不用发布源代码,只需要把编译后的机器码(也就是你在Windows上常见的xxx.exe文件)发布出去。要从机器码反推出C代码是不可能的,所以,凡是编译型的语言,都没有这个问题,而解释型的语言,则必须把源码发布出去。

    #python程序运行
    python程序文件的后缀为.py,其可在windows、Mac、各种linux系统上运行,运行语句为:python xxx.py;
    在windows不能像exe那样直接运行,但在linux和Mac上可以,需要在py文件第一行加上#!usr/bin/env python3,然后通过chmod a+x xxx.py修改执行权限,这样就可以直接在窗口上./xxx.py运行了;
    ps:Python的交互模式和直接运行.py文件有什么区别呢?

    直接输入python进入交互模式,相当于启动了Python解释器,但是等待你一行一行地输入源代码,每输入一行就执行一行。
    直接运行.py文件相当于启动了Python解释器,然后一次性把.py文件的源代码给执行了,你是没有机会以交互的方式输入源代码的。

    #python的数据类型与变量
    1.整数
    Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样,例如:1,100,-8080,0,等等;
    2.浮点数
    浮点数也就是小数,可以用数学法表示:1.23,3.1,12.8,-9.6等,但很大或很小的浮点数时需要用科学计数法,把10用e代替,如:1.23x109就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5等;
    3.字符串
    ‘’和“”表示一样的,都是表示一个字符串;
    4.布尔型
    True和False,第一个字母必须时大写;

    #字符编码
    1.记事本是unicode编码,在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。

    用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件:
    在操作字符串时,我们经常遇到str和bytes的互相转换。为了避免乱码问题,应当始终坚持使用UTF-8编码对str和bytes进行转换。

    由于Python源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为UTF-8编码。当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行:

    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
    第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;

    第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。

    申明了UTF-8编码并不意味着你的.py文件就是UTF-8编码的,必须并且要确保文本编辑器正在使用UTF-8 without BOM编码:

    #条件判断
    elif时else if的缩写
    age = 3
    if age >= 18:
        print('your age is', age)
        print('adult')
    elif age < 2:
        print('your age is',age)
        print('fault')
    else:
        print('your age is', age)
        print('teenager')

    #循环语句
    python的循环有两种方式,第一种是for...in...,第二种是while
    for...in...就是将in后面的每个元素带入for后面的对象,然后执行缩进后的代码行,比如:
    names = ['Michael', 'Bob', 'Tracy']
    for name in names:
        print(name)
    或者计算1到10的整数和
    sum = 0
    for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
        sum = sum + x
        print(sum)
    如果要计算1-100的整数之和,从1写到100有点困难,幸好Python提供一个range()函数,可以生成一个整数序列,再通过list()函数可以转换为list。比如range(5)生成的序列是从0开始小于5的整数:
    所以1到100的整数之和为:
    sum = 0
    for x in range(101):
        sum = sum + x
        print(sum)

    第二种while循环
    sum = 0
    n = 1
    while n < 101:
        sum = sum + n
        n = n + 1
        print(sum)

    #迭代器
    凡是可作用于for循环的对象都是Iterable类型;

    凡是可作用于next()函数的对象都是Iterator类型,它们表示一个惰性计算的序列;

    集合数据类型如list、dict、str等是Iterable但不是Iterator,不过可以通过iter()函数获得一个Iterator对象。

    Python的for循环本质上就是通过不断调用next()函数实现的,例如:

    for x in [1, 2, 3, 4, 5]:
    pass
    实际上完全等价于:

    # 首先获得Iterator对象:
    it = iter([1, 2, 3, 4, 5])
    # 循环:
    while True:
    try:
    # 获得下一个值:
    x = next(it)
    except StopIteration:
    # 遇到StopIteration就退出循环
    break

  • 相关阅读:
    javascript函数apply和call
    【剑指offer】面试题42. 连续子数组的最大和
    【SQL】排名
    【剑指offer】面试题21. 调整数组顺序使奇数位于偶数前面
    【剑指offer】 面试题29. 顺时针打印矩阵
    【剑指offer】面试题58
    【剑指offer】面试题34. 二叉树中和为某一值的路径
    【SQL】取第n个
    【剑指offer】面试题55
    【剑指offer】面试题55
  • 原文地址:https://www.cnblogs.com/ggYYa/p/9558397.html
Copyright © 2011-2022 走看看