美文网首页
一起学Python系列|Python基础语法

一起学Python系列|Python基础语法

作者: 张强_1130 | 来源:发表于2020-09-13 12:15 被阅读0次

    Python基础语法

    一、注释

    Python中的注释有单行注释和多行注释:

    1.1 单行注释

    Python中单行注释以 # 开头,例如

    # 这是一个注释
    print("Hello, World!")
    

    1.2 多行注释

    多行注释用三个单引号 ''' 或者三个双引号 """ 将注释括起来

    """
    这是多行注释,用三个双引号
    这是多行注释,用三个双引号 
    这是多行注释,用三个双引号
    """
    print("Hello, World!")
    

    1.3 注释快捷键

    光标所在行或者选中的多行,运行快捷键进行注释或取消注释

    二、换行

    当一行代码过长或者需要比较规范的格式时,需要对代码进行换行。常用代码换行有通用的反斜杠\和针对字符串起作用的三引号结构。

    2.1 反斜杠

    对于一般表达式来说,反斜杠后直接回车即可实现续行,使用的关键在于反斜杠后不能用空格或者其他符号。

    >>> a=1;b=2;c=a+\
    ... b
    >>> print(c)
    3
    

    对长字符串也适用

    >>> print('print a long long long long long\
    ... very long string')
    print a long long long long longvery long string
    

    2.2 三引号

    可用于多行文本的输出,会根据输入文本自动换行,单引号或双引号均可以

    >>> sql="""
    ... select *
    ... from table
    ... where r=1;
    ... """
    >>> print(sql)
    
    select *
    from table
    where r=1;
    

    三、输入输出

    3.1 输入

    3.1.1 读取键盘输入

    两段代码需要逐行运行

    >>> str = input("输入时提示的内容:");
    输入时提示的内容:学python
    >>> print ("输入的内容是: ", str)
    输入的内容是:  学python
    

    3.1.2 内部赋值

    通过对变量赋值以及变量之间的运算

    3.1.2 读取文件

    读取完整文本f.read()
    size控制读取的字符数,不填写时读取全部文本

    # 读取一个已存在的文件
    f = open("file.txt", "r")
    size=4
    str = f.read(size)
    print(str)
    # 关闭打开的文件
    f.close()
    

    逐行读取读取f.readline()

    f = open("file.txt", "r")
    while str:
        str = f.readline()
        print(str)
    f.close()
    

    读取所有行f.readline()
    以列表的形式返回每一行的内容

    >>> f = open("file.txt", "r")
    >>> str = f.readlines()
    >>> print(str)
    ['第一行:111\n', '第二行222\n']
    >>> f.close()
    

    读取文件指定行

    >>> import linecache
    >>> linecache.getline('file.txt', 2)
    '第二行222\n'
    

    sdf

    3.2 输出

    3.2.1 文件输出

    >>> f = open("newfile.txt", "w")
    >>> f.write("第一行:111\n第二行222\n" )
    15
    >>> f.close()
    

    3.2.2 换行输出

    自动换行打印
    循环打印时,系统会自动换行

    >>> for s in ['爱','我','中','华']:
    ...     print(s)
    爱
    我
    中
    华
    

    换行符
    使用\n换行符

    >>> print('第一行\n第二行\n第三行')
    第一行
    第二行
    第三行
    

    打印到文件中
    使用sys.stdout进行设置,打印内容会追加到已有文件中

    import sys
    __console = sys.stdout   #备份用于后期还原
    # 把打印重定向文件
    f=open('print.log',"a+") 
    sys.stdout=f
    print('第一行\n第二行\n第三行')
    print('第四行')
    

    结果

    (base) datscicn@datscicn ~ % cat print.log
    第一行
    第二行
    第三行
    第四行
    

    打印进度条
    用于大量循环时,便于了解进度

    >>> from tqdm import tqdm
    >>> import time
    >>> for i in tqdm(range(365)):
    ...     time.sleep(0.01)#停顿以更好地展示
    ...
    24%|██████████▏                               | 89/365 [00:09<00:28,  9.70it/s]
    

    3.2.3 格式化输出

    str和repr
    部分对象需要使用repr转换成文本,例如字典:

    In [40]: a={'runoob': 'runoob.com', 'google': 'google.com'}
    
    In [41]: s1='这是一个字典:'+str(a)
    Traceback (most recent call last):
    
      File "<ipython-input-41-d3272ee908e3>", line 1, in <module>
        s1='这是一个字典:'+str(a)
    
    TypeError: 'str' object is not callable
    
    
    In [42]: s2='这是一个字典:'+repr(a)
    
    In [43]: print(s2)
    这是一个字典:{'runoob': 'runoob.com', 'google': 'google.com'}
    

    str.format()

    # 1.通过变量或直接赋值
    >>> explain='年龄';jd=2/29;
    >>> s="当前评估的变量为{0},中文名为{explain},整体评估进度为{jd:.3%}".format('age',explain=explain,jd=jd)
    >>> print(s)
    当前评估的变量为age,中文名为年龄,整体评估进度为6.897%
    # 2.通过字典或列表赋值
    # *列表要在**字典前面
    >>> names=['zq1','zq2','zq3']
    >>> ren={'name':'zq','age':19.3,'score':888.882}
    >>> '我的名字是{name},今年{age}岁,得分{score:.2f},下一位是{1}'.format(*names,**ren)
    '我的名字是zq,今年19.3岁,得分888.88,下一位是zq2'
    

    3.3 序列化

    数据存储

    >>> import pickle
    >>> # 使用pickle模块将数据对象保存到文件
    >>> names=['zq1','zq2','zq3']
    >>> ren={'name':'zq','age':19.3,'score':888.882}
    >>> output = open('data.pkl', 'wb')
    >>> pickle.dump([names,ren], output)
    >>> output.close()
    

    数据读取

    >>> import pickle
    >>> #使用pickle模块从文件中重构python对象
    >>> pkl_file = open('data.pkl', 'rb')
    >>> data= pickle.load(pkl_file)
    >>> names=data[0]
    >>> ren=data[1]
    >>> print(names,ren)
    ['zq1', 'zq2', 'zq3'] {'name': 'zq', 'age': 19.3, 'score': 888.882}
    >>> pkl_file.close()
    

    四、条件控制

    >>> age=44;sex='男'
    >>> if sex=='男' and age<=25:
    ...     result='男青年'
    ... elif sex!='女':
    ...     result='非女性'
    ... elif age<=10 or age>60:
    ...     resule='老幼女性'
    ... else:
    ...     result='其他女性'
    >>> print(result)
    非女性
    

    五、循环语句

    5.1 while循环

    >>> count = 0 #初始化
    >>> while count < 6:
    ...    print (count, " 小于 6")
    ...    count = count + 1
    ... else:
    ...    print (count, " 大于或等于 6,跳出循环")
    ...    count = count + 1
    ...
    0  小于 6
    1  小于 6
    2  小于 6
    3  小于 6
    4  小于 6
    5  小于 6
    6  大于或等于 6,跳出循环
    

    5.2 for循环

    >>> for i in range(1,11):
    ...     pr=1
    ...     ti=1
    ...     while ti<=i:
    ...         pr*=ti
    ...         ti+=1
    ...     print((repr(i)+'的阶乘为:{0:,d}').format(pr))
    ...
    1的阶乘为:1
    2的阶乘为:2
    3的阶乘为:6
    4的阶乘为:24
    5的阶乘为:120
    6的阶乘为:720
    7的阶乘为:5,040
    8的阶乘为:40,320
    9的阶乘为:362,880
    10的阶乘为:3,628,800
    

    相关文章

      网友评论

          本文标题:一起学Python系列|Python基础语法

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