美文网首页语言简书收藏--Pythonpython3学习
python3精简笔记(一)——输入输出,类型,循环

python3精简笔记(一)——输入输出,类型,循环

作者: 于连林520wcf | 来源:发表于2017-04-07 11:35 被阅读553次

    输入输出

    input() 输入函数
    print() 输出函数

    程序一运行,会首先打印出please enter your name:,这样,用户就可以根据提示,输入名字后,得到hello, xxx的输出:

    name = input('please enter your name: ')
    print('hello,', name)
    

    输出的时候 ,分隔开,会自动加一个空格

    python基础

    # 开头的是注释。

    当语句以冒号:结尾时,缩进的语句视为代码块。
    例子:

    # print absolute value of an integer:
    a = 100
    if a >= 0:
    print(a)
    else:
    print(-a)
    

    比较坑的是 编辑器很难像格式化java一样格式化python, 一般缩进4个空格,在文本编辑器中,需要设置把Tab自动转换为4个空格,确保不混用Tab和空格。

    python数据类型

    在Python中,能够直接处理的数据类型有以下几种:

    1. 整数
    2. 浮点数
    3. 字符串
    4. 布尔值
    5. 空值 none
    6. 变量

    整数

    python整数没有大小限制

    字符串

    转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\

    为了简化,Python还允许用r''表示''内部的字符串默认不转义

    >>> print('\\\t\\')
    \ \
    >>> print(r'\\\t\\')
    \\\t\\
    

    \n写在一行里不好阅读,为了简化,Python允许用'''...'''的格式表示多行内容

    >>> print('''line1
    ... line2
    ... line3''')
    line1
    line2
    line3
    

    布尔值

    布尔值可以用andornot运算。

    1. and运算是与运算,只有所有都为Trueand运算结果才是True
    2. or运算是或运算,只要其中有一个为Trueor运算结果就是True
    3. not运算是非运算,它是一个单目运算符,把True变成FalseFalse变成True

    变量

    python变量没有类型约束 没有关键字声明

    #声明变量 a为 1
    a=1
    

    注意

    python除法运算分为两种 , ///
    /无论是否除尽结果都为浮点数, //为地板除 ,除不尽也为整数

    9/3 =3.0
    10//3=3
    

    python编码

    最新的Python 3版本中,字符串是以Unicode编码的,也就是说,Python的字符串支持多语言

    对于单个字符的编码,Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符:

    >>> ord('A')
    65
    >>> ord('中')
    20013
    >>> chr(66)
    'B'
    >>> chr(25991)
    '文'
    

    encode()和decode()

    由于Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把str变为以字节为单位的bytes

    Python对bytes类型的数据用带b前缀的单引号或双引号表示:

    x = b'ABC'
    

    要注意区分'ABC'和b'ABC',前者是字符串,后者虽然内容显示得和前者一样,但bytes的每个字符都只占用一个字节。

    以Unicode表示的str通过encode()方法可以编码为指定的bytes

    >>> 'ABC'.encode('ascii')
    b'ABC'
    >>> '中文'.encode('utf-8')
    b'\xe4\xb8\xad\xe6\x96\x87'
    

    decode()方法把bytes变为str

    len()

    len()函数计算的是str的字符数,如果换成bytes,len()函数就计算字节数:

    >>> len(b'ABC')
    3
    >>> len(b'\xe4\xb8\xad\xe6\x96\x87')
    6
    >>> len('中文'.encode('utf-8'))
    6
    

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

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

    第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;

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

    字符串格式化

    在Python中,采用的格式化方式和C语言是一致的,用%实现,%运算符就是用来格式化字符串的。在字符串内部,%s表示用字符串替换,%d表示用整数替换,有几个%?占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?,括号可以省略。举例如下:

    >>> 'Hello, %s' % 'world'
    'Hello, world'
    >>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
    'Hi, Michael, you have $1000000.'
    

    格式化整数和浮点数还可以指定是否补0和整数与小数的位数:

    >>> '%2d-%02d' % (3, 1)
    ' 3-01'
    >>> '%.2f' % 3.1415926
    '3.14'
    

    如果你不太确定应该用什么,%s永远起作用,它会把任何数据类型转换为字符串
    字符串里面的%是一个普通字符怎么办?这个时候就需要转义,用%%来表示一个%:

    >>> 'growth rate: %d %%' % 7
    'growth rate: 7 %'
    

    list

    Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。

    >>> classmates = ['Michael', 'Bob', 'Tracy']
    >>> classmates
    ['Michael', 'Bob', 'Tracy']
    

    用len()函数可以获得list元素的个数。
    不能越界,记得最后一个元素的索引是len(classmates) - 1。
    如果要取最后一个元素,除了计算索引位置外,还可以用-1做索引,直接获取最后一个元素:

    >>> classmates[-1]
    'Tracy'
    

    -2 为倒数第二个 -3 倒数第三个 以此类推

    list方法

    append()追加元素
    insert()插入元素
    pop() 删除最后元素或指定元素
    要把某个元素替换成别的元素,可以直接赋值给对应的索引位置:

    classmates.append('Adam')
    classmates.insert(1, 'Jack')
    classmates.pop()
    classmates.pop(1)
    classmates[1] = 'Sarah'
    

    tuple

    另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改

    定义方式用()定义

    tuple的陷阱:当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来,比如:

    >>> t = (1, 2)
    >>> t
    (1, 2)
    

    注意

    要定义一个只有1个元素的tuple,如果你这么定义:

    >>> t = (1)
    >>> t
    1
    

    定义的不是tuple,是1这个数!这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1。

    所以,只有1个元素的tuple定义时必须加一个逗号,,来消除歧义:

    >>> t = (1,)
    >>> t
    (1,)
    

    Python在显示只有1个元素的tuple时,也会加一个逗号,,以免你误解成数学计算意义上的括号。

    条件判断

    关键字: if else elif

    elifelse if的缩写,完全可以有多个elif,所以if语句的完整形式就是:

    if <条件判断1>:
        <执行1>
    elif <条件判断2>:
        <执行2>
    elif <条件判断3>:
        <执行3>
    else:
        <执行4>
    

    python并不像Java语言中使用{}包裹执行语句, python是识别冒号:后的缩进的

    age = 3
    if age >= 18:
        print('your age is', age)
        print('adult')
    else:
        print('your age is', age)
        print('teenager')
    

    输出

    your age is 3
    teenager
    

    下面代码,只要x是非零数值、非空字符串、非空list等,就判断为True,否则为False

    if x:
        print('True')
    

    注意

    1. 不要忘了写冒号:

    条件判断的问题

    最后看一个有问题的条件判断。很多同学会用input()读取用户的输入,这样可以自己输入,程序运行得更有意思:

    birth = input('birth: ')
    if birth < 2000:
        print('00前')
    else:
        print('00后')
    

    上面代码执行后,输入数字会报错, 因为input输入的都是字符串,需要通过int()函数转换成整数

    s = input('birth: ')
    birth = int(s)
    if birth < 2000:
        print('00前')
    else:
        print('00后')
    

    循环

    循环分为 for...inwhile循环

    for...in

    一种是for...in循环,依次把list或tuple中的每个元素迭代出来

    比如计算list中数的和

    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的整数:

    >>> list(range(5))
    [0, 1, 2, 3, 4]
    

    range(101)就可以生成0-100的整数序列,计算如下:

    sum = 0
    for x in range(101):
        sum = sum + x
    print(sum)
    

    while

    只要条件满足,就不断循环,条件不满足时退出循环。

    sum = 0
    n = 99
    while n > 0:
        sum = sum + n
        n = n - 2
    print(sum)
    

    dict

    Python内置了字典:dict的支持,dict全称dictionary,Java语言中对应为map,使用键-值(key-value)存储,具有极快的查找速度。

    例子:

    >>> d = {'小明': 95, '小于': 75, '小红': 85}
    >>> d['小明']
    95
    

    如果key不存在就会报错
    要避免key不存在的错误,有两种办法,一是通过in判断key是否存在:

    >>> '老王' in d
    False
    

    二是通过dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value:

    >>> d.get('老王')
    >>> d.get('老王', -1)
    -1
    

    注意:返回None的时候Python的交互式命令行不显示结果。

    要删除一个key,用pop(key)方法,对应的value也会从dict中删除:

    >>> d.pop('小于')
    75
    >>> d
    {'小明': 95, '小红': 85}
    

    正确使用dict非常重要,需要牢记的第一条就是dict的key必须是不可变对象。

    set

    set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。

    要创建一个set,需要提供一个list作为输入集合,重复元素在set中自动被过滤:

    >>> s = set([1, 1, 2, 2, 3, 3])
    >>> s
    {1, 2, 3}
    
    1. 通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果;
    2. 通过remove(key)方法可以删除元素。

    set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作,&取交集,|取并集:

    >>> s1 = set([1, 2, 3])
    >>> s2 = set([2, 3, 4])
    >>> s1 & s2
    {2, 3}
    >>> s1 | s2
    {1, 2, 3, 4}
    

    更多精彩请关注微信公众账号likeDev。


    likeDev

    相关文章

      网友评论

        本文标题:python3精简笔记(一)——输入输出,类型,循环

        本文链接:https://www.haomeiwen.com/subject/pzzcattx.html