zoukankan      html  css  js  c++  java
  • 01-Python-变量、数据类型和数据运算

    1、变量命名规范

    • 变量名只能包含字母数字下划线。变量名可以字母或者下划线开头,但不能以数字开头。例如,variable_1合法,但是1_variable就是非法的变量命名。
    • 变量名不能包含空格,但可以使用下划线来分割单词。例如,Hello_World合法,但是Hello World就非法。
    • 不能将关键字以及函数名作为变量名
    • 变量名应该既简短又具有描述性。
    • 慎用容易混淆的字母和数字。例如,字母l和数字1,字母o和数字0。

    1.1、 变量的赋值

    1 name = "Druid chen"
    2 name2 = name 
    3 
    4 print(name,name2)  #打印结果为Druid chen Druid chen
    5 
    6 
    7 name = "Druid"  #改变变量的值
    8 
    9 print(name,name2)  #打印结果为Druid Druid chen

    2、数据运算

    2.1、数字类型

    常见的有整数、浮点型。对于浮点数的运算结果,小数位数可能是不确定的精度损失问题戳我了解详情

    int(整型)

      在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
      在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
    long(长整型)
      跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
      注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。
    float(浮点型)
      浮点数用来处理实数,即带有小数的数字。类似于C语言中的double类型,占8个字节(64位),其中52位表示底,11位表示指数,剩下的一位表示符号。python浮点型默认精度为17,如果想要获取高精度浮点型,可以使用"decimal模块(默认28位) + getcontext().prec = 位数" 来实现。
    complex(复数)
      复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。 
    注:Python中存在小数字池:-5 ~ 257

     2.2、布尔值 

      真或假(1 或 0。1代表为真,0代表为假)。可用bool()方法来判断真假。
      

     2.3、字符串

    字符串就是一系列的字符。在Python中,用引号(单引号'...',双引号"..."皆可)括起来的都是字符串。字符串不能修改

    2.3.1、修改字符串大小写

    name = "ada lovelace"
    print(name.title())  #title()以首字母大写的方式显示字符串中的每个单词。

      

    name = "Ada Lovelace"
    print(name.upper()) #输出全为大写
    print(name.lower())  #输出全为小写

    2.3.2、合并(拼接)字符串

    1 first_name = "ada"
    2 last_name = "lovelace"
    3 full_name = first_name + " " + last_name #使用+来合并first_name、空格和last_name
    4 
    5 print("Hello, " + full_name.title() + "!" )
    6 
    7 '''message = "Hello, " + full_name.title() + "!" 
    8   print(message)'''

    这里的连接符“+”会在内存中新开辟一块内存空间,因此因该避免此种用法。

    2.3.3、制表符、换行符

    空白泛指任何非打印字符,例如空格、制表符和换行符。 为制表符, 为换行符。

    2.3.4、删除空白 

     1 language = 'Python   '
     2 language  #'Python  '
     3 language  #'Python'
     4 
     5 language.rstrip()  #'Python'。rstrip()方法可以去掉末尾空格,但只是暂时的,language的值没有被改变。
     6 language  #'Python  '。空格仍然在。
     7 
     8 language = language.rstrip()  #要永久删除字符串中的空白,则可以将结果保存在变量中。
     9 language  #'Python'
    10 
    11 #lstrip()方法可以删除字符串左边的空格;#strip()方法删除字符串左右的空格。

    2.3.5、常用方法

    1 name.capitalize()  #首字母大写
    2 name.casefold()   #大写全部变小写
    3 name.center(50,"-")  #输出 '---------------------Alex Li----------------------'
    4 name.count('lex')  #统计 lex出现次数
    5 name.encode()  #将字符串编码成bytes格式
    6 name.endswith("Li")  #判断字符串是否以 Li结尾
    7  "Alex	Li".expandtabs(10)  #输出'Alex      Li', 将	转换成多长(10)的空格 
    8  name.find('A')  #查找A,找到返回其索引, 找不到返回-1

    2.3.6、字符串格式化

     1 #format方法
     2 msg = "my name is {}, and age is {}"
     3 msg.format("alex",22)  #'my name is alex, and age is 22'
     4 
     5 msg = "my name is {1}, and age is {0}"
     6 msg.format("alex",22)  #'my name is 22, and age is alex'
     7    
     8 msg = "my name is {name}, and age is {age}"
     9 msg.format(age=22,name="alex")  #'my name is alex, and age is 22'
    10  
    11 _username = input("请输入你的用户名:")
    12 _age = input("请输入你的年龄:")
    13 print("你好:{name},你的年龄:{age}".format(name=_username,age=_age))
    14 
    15 #format_map
    16 msg = "my name is {name}, and age is {age}"
    17 msg.format_map({'name':'alex','age':22})  #'my name is alex, and age is 22'
    18  
    19 #使用%
    20 'Hello, %s' % 'world'  #'Hello, world'
    21  
    22 'Hi, %s, you have $%d.' % ('Michael', 1000000)  #'Hi, Michael, you have $1000000.'
    23    
    24 #格式化整数和浮点数还可以指定是否补0和整数与小数的位数:
    25 '%2d-%02d' % (3, 1)  #' 3-01',第一个2的意思为两位,0的意思为用数字0占一位,第二个2的意思为两位
    26 '%.2f' % 3.1415926  #'3.14',取小数点后两位
    27    
    28 #有些时候,字符串里面的%是一个普通字符怎么办?这个时候就需要转义,用%%来表示一个%:
    29 'growth rate: %d %%' % 7  #'growth rate: 7 %'

       那么我们应该用什么%还是format呢?看下面的例子:

    c = (250, 250)  # 定义一个坐标值
    s1 = "敌人坐标:%s" % c  # 使用%来格式化
    
    print(s1)  # 代码会报typeerror错误 ---》TypeError: not all arguments converted during string formatting

      怎么解决该问题呢?

    c = (250, 250)  # 定义一个坐标值
    s1 = "敌人坐标:%s" % (c, )  # 用该格式
    
    print(s1)   # 正常输出结果 ---》敌人坐标: (250, 250)

      而如果我们使用format,那么就不会存在该问题:

    c = (250, 250)
    s1 = "敌人坐标: {}".format(c)
    
    print(s1)  # 正常输出结果 ---》敌人坐标: (250, 250)

      因此在日常使用中应该选format方法。

      补充:在Python3.6中新增加了f-strings方法

    name = "Druid"
    age = 8
    t = f" My Name is {name}, I'm {age} years old "
    
    print(t) # 输出结果 ---》 My Name is Druid, I'm 8 years old

      

    3、数据运算 

    3.1 运算符

    算术运算:

     

    比较运算:

      赋值运算:

      

       逻辑运算:

      

      

      成员运算:

      

    身份运算:

      位运算:

      

      按位取反运算规则详解猛击我

     

    3.2 运算符优先级

      

    4、 使用函数str()避免类型错误

     1 age = 23
     2 msg = "Happy " + age + "rd Birthday"
     3 
     4 print(msg)  #会报'age'的类型错误。
     5 
     6 #使用下面的方法可避免该错误
     7 
     8 age = str(23)  #将int类型的23转换为字符串,以字符2和3处理。
     9 msg = "Happy " + age + "rd Birthday"
    10 
    11 print(msg)

    5、逻辑运算

    • and:如果X为False, 则X and Y返回False,否则返回Y的值。(短路运算)
    • or:如果X为True,则X and Y返回True,否则返回Y的值。(短路运算)
    • not:如果X为True,则not X返回False。

    6、三元运算

    result = value1 if 条件 else value2

    • 如果条件为真:result = value1
    • 如果条件为假:result = value2
    1 a,b,c = 1,2,3
    2 
    3 d = c+1 if a < b else c  #如果判断条件为真,则返回d=c+1
    4 print(d)  #结果为4
    5 
    6 d = c+1 if a > b else c  #否则返回c
    7 print(d)  #结果为3

      

  • 相关阅读:
    css
    css笔记
    css笔记
    echarts
    css笔记
    跨域
    JS案例
    html2canvas
    echarts
    echarts
  • 原文地址:https://www.cnblogs.com/Druidchen/p/7676677.html
Copyright © 2011-2022 走看看