zoukankan      html  css  js  c++  java
  • python查漏补缺 --- 基础概念及控制结构

    python  是一种面向对象的解释型计算机程序设计语言,在运行时由解释器处理,在执行程序之前不需要编译程序。Python就是一句话,写得快,跑得慢。

    下面的内容是平时工作中容易忽略掉的小细节,希望借此可以多总结  多运用
    1、用 / 计算后,结果的数据类型是 浮点型
    2、任何数除以0 在python中会产生错误
    3、报错的日志:
        Traceback : 追踪
        most recent call last: 最近执行的最后一条
        ZeroDivisionError: 除以0错误
    4、计算机不能完全精确的存储浮点小数,就像我们无法写出1/3(0.3333333333333333333333333),完整的小数位数一样。
    5、生成浮点数的方式:
        a. 直接定义
        b. 两个整型数字相除
        c. 两个浮点数相互运算
        d. 整型和浮点数相互运算
    6、除加减乘除之外,python还支持幂,幂是用两个星号进行操作,如:
        >>>2**5
        32
        >>>9**(1/2)
        3.0
    7、  //表示两数相除求商,省略余数;
      %表示两数相除求余数,省略商
       / 表示两数相除,商以浮点小数的形式展示
    8、python中 引用字符串,单引号双引号基本没有区别,但是一下几点要知晓:
        a. python控制台显示一个字符串时,通常使用单引号
        b. 如果输入文本本身就包含单双引号的话,就会令解释器造成混乱,所以在文本本身带单引号的情况下,建议使用双引号;在文本本身带双引号的情况下,建议使用单引号
    9、所有的ASCII码都可以用“”加数字(一般是8进制数字)来表示。而python中定义了一些字母前加“、”来表示常见的那些不能显示的ASCII字符,如 代表换行 代表制表符
    10、三个引号的作用是,不必输入任何的 .... 各种的换行符以及制表符等 输入时直接回车或者tab键入即可,输出时和输入时的效果一致
    11、text = input("请输入数字")
    12、在python中print默认是换行的,如果不想换行可以写成 print (i, end = '' )
    13、字符串可以与整数相乘(不能与浮点数或者其他字符串相乘),这会让字符串重复,如,"a"*3 => "aaa"
    14、变量定义的字符可以是字母/数字/下划线,但是不能以数字开头
    15、使用del语句,可以删除定义好的变量,从而实现变量的重新定义
    16、许多其他语言都有专门的操作符,如“++”,作为“x+=1”的快捷方式。python没有这些
    17、python为其布尔运算符使用单词,而大多数其他语言使用符号,例如,&&,|| 和 !
    18、python中浮点型(float)和整形(int)可以比较大小,如,8>7.9 ,会输出 True
    19、python中逻辑反(非),用 not 来表示,如,not 1 == 1,返回 false ,我理解的是:“在True或者False的基础上进行取反”
    20、python的运算顺序与普通数学相同;先括号,然后求幂,然后乘法/除法,然后加/减
    21、while循环中常见用到continue,不像break ,continue跳回循环的顶部,而不是停止它。(不执行当次循环continue后面的语句),也就是说,continue语句会停止之后的逻辑,跳出到下一个迭代,break是停止所有迭代。
    22、列表list 可以包含若干个不同数据类型的元素,也可以列表中嵌套列表
    23、列表list 可以添加也可以相乘,和字符串一样。如,[1,2,3]+[4,5,6]=[1,2,3,4,5,6] 或者 [1,2]*3 = [1,2,1,2,1,2]
    24、用 in 语句来检查列表中是否包含某元素,返回True或False;另外, in 运算符还可以用于确定字符串是否是另一个字符串的子字符串
    25、range(20) == range(0,20) 如果range只有一个参数,他将产生一个参数列表,如果range有两个参数,他将产生一个左闭右开的值的列表,range也可以有第三个参数,它决定所产生的序列问题,这第三个参数必须是整数
    如,nums = list ( range( 5 , 20 , 2 ) ) 那么print(nums)的结果是[ 5,7,9,11,13,15,17,19]
    26、操作list列表的函数有很多,如 lst 是list的一个实例,
        lst.append('新元素') 在列表最后添加一个元素
        len(lst) 查看列表中元素的个数
        insert 方法比较像append,他允许你在列表中的任何位置插入新的元素,而不是只在最后一个位置,如,words = ["python","fun"] , index = 1 , words.insert(index , "is") ,        print(words)的结果为['python','is','fun']
        max(lst) 返回列表中最大的值
        min(lst) 返回列表中最小的值
        lst.count(odj) 返回一个项目在列表中出现的次数
        lst.remove(obj) 从列表中删除一个元素
        lst.reverse() 翻转列表中的元素
        lst[a:b] 取列表中的值,左闭右开

    27、python中index()、find()方法

    index() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,该方法与 python find()方法一样,只不过如果str不在 string中会报一个异常。影响后面程序执行
    index()方法语法:str.index(str, beg=0, end=len(string))

    str -- 指定检索的字符串
    beg -- 开始索引,默认为0。
    end -- 结束索引,默认为字符串的长度

    str1='python is on the way']
    str2='on'
    #空格,等其他操作符对其索引位置也有影响
    #在str1中检测字符串中是否含有子字符串str2  str1.index(str2,beg=0,end=len(str1))
    
    #如果包含子字符串 返回检测到的索引值
    print(str1.index(str2))
    
    #从索引1开始检测,检测长度为3
    print(str1.index(str2,1,3))

    如果包含子字符串返回开始的索引值,否则抛出异常。

    user_name = ['xiaolei','xiaoman','lixia']
    pass_word = ['123','456','789']
    username = input('username:').strip()
    password = input('password:').strip()
    if username in user_name and password == pass_word[user_name.index(username)]:
    
      print(f"登录成功,欢迎您:{username}")
    else:
      print("错误!")
    若输入:username == xiaolei
    user_name.index(username) == 0
    所以:password == pass_word[0] == 123

    Python find()方法,不能用于列表list

    str.find(str, beg=0, end=len(string))

    str -- 指定检索的字符串
    beg -- 开始索引,默认为0。
    end -- 结束索引,默认为字符串的长度。

    Python find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,
    如果包含子字符串返回开始的索引值,否则返回-1。不影响后面程序执行

    str1='python is on the way'
    str2='on'
    str3='nice'
    
    print(str1.index(str2))
    
    #不在字符串str1中
    print(str1.find(str3))
    
    #从索引1开始检测,检测长度为3
    print(str1.find(str2,1,3))
  • 相关阅读:
    RocketMQ Message hasn't been sent. Caused by No route info of this topic, test-topic
    Barrier
    WPF之资源
    WPF之命令
    WPF之事件
    WPF之属性
    多路Binding
    Binding的数据转换
    Binding的数据校验
    为Binding指定源的方法
  • 原文地址:https://www.cnblogs.com/beiyi888/p/11262344.html
Copyright © 2011-2022 走看看