python-基本数据类型和变量

·  阅读 70

基本数据类型

  • int 8
  • float 8.8
  • str "8"
  • bool True/False
i = 1
print(type(i)) ## <class 'int'>
f = 1.2
print(type(f)) ## <class 'float'>
s = "1.2"
print(type(s)) ## <class 'str'>
b = True
print(type(b)) ## <class 'bool'>
复制代码

整型

  1. 对于Python3,由于去掉了long类型,int类型没有上限(准确说还是有的,取决于内存大小。。)

    ## python2
    import sys
    max = sys.maxsize
    print(max)
    print(type(max))
    复制代码
  2. 不仅能表示10进制,还能表示八进制,16进制的数

    # 演示进制
    # 二进制
    # 二进制的表示方式: 1. 0和1组合 2.0b作为前缀
    binary = int("0b1111", 2) # 二进制转十进制
    print(binary)
    
    # 八进制的表示方式: 1. 0-7组合 2. 0o作为前缀
    octal = int("0o17", 8) # 八进制转十进制
    print(octal)
    
    # 16进制的表示方式: 1. 0-9+a-f组合 2. 0x作为前缀
    hexadecimal = int("0xf", 16) # 16进制转十进制
    print(hexadecimal)
    
    print(bin(15)) # 十进制转二进制
    print(oct(15)) # 十进制转八进制
    print(hex(15)) # 十进制转十六进制
    复制代码
  3. Python允许在数字中间以_分隔,因此,写成10_000_000_00010000000000是完全一样的。

浮点型

  1. 将带有小数点的数字都成为浮点数。小数点可以出现在数字的任意位置

  2. 科学计数法

    num = 1.23e9 # e 指代10
    print(num)
    right = 12.3e8 # e 指代10
    print(right)
    print("left = right ? --> " + str(left == right)) # 小数点的位置不一样,但是结果却是相同的
    复制代码
  3. 计算精度的问题

    print(3 * 0.1) # 0.30000000000000004
    print(0.2 + 0.1) # 0.30000000000000004
    复制代码

字符串

  1. '' ""

    "'python' is my favorite language!"
    '"python" is my favorite language!'
    复制代码

    注意点:'''(不是很推荐使用,容易跟多行注释搞混)

    message = '''
    languages:
        java
        python
    '''
    print(message)
    '''
    languages:
        java
        python
    '''
    复制代码
  2. 常用函数

    • title()以首字母大写的方式显示每个单词 upper()所有字母转大写 lower()所有字母转小写

      name = "python language"
      print(name.title()) # Python Language
      print(name.upper()) # PYTHON LANGUAGE
      print(name.upper().lower()) # Python Language
      复制代码
    • 拼接字符串

      first_name = "jack"
      last_name = "love"
      full_name = first_name + " " + last_name
      msg = "hello, " + full_name.title() + "!"
      print(msg)
      ## 注意点
      a = b = c = 1
      print("a = " + a + ", b = " + b + ", c = " + c) # 在做拼接的时候,python并不能像java一样自动转换类型,报错
      '''
      print("a = " + a + ", b = " + b + ", c = " + c)
      TypeError: can only concatenate str (not "int") to str
      '''
      复制代码
    • 转义字符串(\t \n

      print("languages:\n\tpython\n\tjava\n\tgo\n\thtml")
      '''
      output:
      languages:
              python
              java
              go
              html
      '''
      复制代码
    • 去空rstrip lstrip strip(注意点:要想永远删除这个字符串中的空白,必须将删除操作的结果存回到变量中)

      >>> msg = 'python   '
      >>> msg
      'python   '
      >>> msg.rstrip()
      'python'
      >>> msg
      'python   '
      >>> msg = msg.rstrip() 
      >>> msg
      'python'
      >>> msg = '  python   '  
      >>> msg
      '  python   '
      >>> msg.lstrip() 
      'python   '
      >>> msg.rstrip() 
      '  python'
      >>> msg.rstrip().lstrip()
      'python'
      >>> msg.strip()           
      'python'
      复制代码
  3. 引号的注意点

    msg = "it's mine"
    print(msg);
    # SyntaxError: invalid syntax
    msg = 'it's mine' 
    print(msg);
    复制代码

布尔值

  • True 非0就是True

  • False 0就是False

基本数据类型的相互转化

print(type("1")) ##  <class 'str'>
print(type(int("1"))) ## <class 'int'>
print(type(123)) ## <class 'int'>
print(type(str(123))) ##  <class 'str'>
print(type(123))  # <class 'int'>
print(type(bool(123)))  # <class 'bool'>
print(bool(123)) # True 非0就是True
print(bool(0)) # False 0就是False
print(type(1.2)) # <class 'float'>
print(type(int(1.2))) # <class 'int'>
print(int(1.2)) # 1 精度丢失
复制代码

变量

变量赋值

  • Python 中的变量赋值不需要类型声明。

  • 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。

  • 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

  • 等号(=)用来给变量赋值。

  • 等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。

name = "shawn" # 第一次赋值
print(name) # shawn
name = "jack" # 重新赋值
print(name) # jack
复制代码

多变量赋值

a = b = c = 1
print("a = " + str(a) + ", b = " + str(b) + ", c = " + str(c))
username, password = "shawn", "123456"
print("username = " + username)
print("password = " + password)
复制代码

变量命名规范

参考文档:

英文版:www.python.org/dev/peps/pe…

中文版:python.freelycode.com/contributio…

分类:
后端
标签:
分类:
后端
标签: