博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Python基础 - 02变量和数据类型

Posted on 2021-10-09 21:25  Kingdomer  阅读(108)  评论(0编辑  收藏  举报

Python基础 - 02变量和数据类型

一、命名规则

1.1 Python标识符由字母、下划线(_)和数字组成,且数字不能开头。
  • 以下划线开头的标识符是有特殊意义的,
    • 以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用"from xxx import *"而导入。
  • 以双下划线开头的(__foo)代表类的私有成员,
    • 以双下划线开头和结尾的(__foo__)代表python里特殊方法专用的标识,如__init__()代表类的构造函数。
1.2 Python标识符是区分大小写的。
1.3 不能使用Python保留字符/关键字。 这些保留字不能用作常数或变数,或任何其他标识符名称。所有Python的关键字只包含小写字母。
and  assert  break  class  continue  def  del  elif  else  except  exec  finally  for  from  global
if  import  in  is  lambda  not  or  pass  print  raise  return  try  while  with  yield
 
A = 100
b = 200
print(A)
print(b)

# 见名知意: getNameByLine
# getNameByLine: 驼峰式:开头第一个单词全部小写, 小驼峰式
# FilePath: 大驼峰式,面向对象的类名
getNameByLine = 'hello'
get_name_by_line = 'world'

 

二、数据类型

2.1 基本的Python数据类型:整型(整数)、浮点数(带小数点的数字)和字符串。

  • 数字类型: int(有符号整型)、long(长整型[也可以代表八进制和十六进制])、 float(浮点型)、complex(复数)
  • 布尔类型: True、 False
  • 字符串String
  • 列表List
  • 元祖Tuple
  • 字典Dictionary
money = 28
print(type(money))  # <class 'int'>

money = 28.9
print(type(money))  # <class 'float'>

money = 0.96334321
print(money)        # 0.96334321
print(type(money))  # <class 'float'>

money = '100'
print(type(money))  # <class 'str'>

money = "100"
print(type(money))  # <class 'str'>

money = ''' 100 '''
print(type(money))  # <class 'str'>

message = '微软发布: "Window 11来了"'
print(message)                       # 微软发布: "Window 11来了"
message = "微软发布: 'Window 11来了'"
print(message)                       # 微软发布: 'Window 11来了'
poem = '''
            静夜思
            唐李白
        窗前明月光,疑是地上霜
        举头望明月,低头思故乡
'''
print(poem) # 按照格式输出

isLogin = True
print(isLogin)          # True
isLogin = False
print(isLogin)          # False

 

>>> print("\t\t\t \\ \\ \\ \\ \\ \\ \\")
                         \ \ \ \ \ \ \
>>> print("\nSpecial thanks goes out to:")

Special thanks goes out to:
>>> print("My hair stylist, Henry \'The Great,\' who never says \"can\'t.\"")
My hair stylist, Henry 'The Great,' who never says "can't."

 

2.2 数据类型转换

userName = input('输入姓名:')  # 1
print(userName)               # 1
print(type(userName))         # <class 'str'>  , 所有输入的都是字符串类型。

total = input("输入数量:")
print(total)

# TypeError: can only concatenate str (not "int") to str
# print(total + 19)
print(total+'19')          # 1119,  字符串拼接
print(int(total)+19)       # 30,    int类型相加

 

one = '19'
two = "110"
# str --> int / str --> float print(int(one) + int(two)) # 129 print(float(one) + float(two)) # 129.0 print(int(one) - int(two)) # -91 print(float(one) - float(two)) # -91.0
# float --> int a = 9.49 print(int(a)) # 9 , 小数点后的部分被去掉
# str --> int str必须是整数类型的字符串,float格式的字符串转int 报错 b = "9.49" # ValueError: invalid literal for int() with base 10: '9.49' # print(int(b))
# int/float --> str print(str(a))

 

# bool --> int / float / str
flag = True
print(int(flag))    # 1
print(float(flag))  # 1.0
print(str(flag))    # "True"
# int/float/str --> bool: 变量的值是0,''(空字符串),转换结果为False,其余为True a = 2 print(bool(a)) # True a = 0 print(bool(a)) # False a = -1 print(bool(a)) # True a = '' print(bool(a)) # False a = ' ' print(bool(a)) # True

2.3 输出格式

%%   输出%号

%s   字符串               %c   字符 

%d   有符号十进制整数       %u   无符号十进制整数

%f   浮点数

%o   八进制整数            %x   十六进制整数(0x)       %X    十六进制整数(0X)

%e   科学计数法(e)         %E   科学计数法(E)          %g    %f和%e的简写             %G  %f和%E的简写

 

age = 20
name = '阿飞'
print('我喜欢听' + str(age) + '岁的' + name + '唱歌')  # 我喜欢听20岁的阿飞唱歌
print('我喜欢看%d岁的%s跳舞' % (age, name))  # 我喜欢看20岁的阿飞跳舞

money = 99.96
print('我喜欢看%d岁的%s跳舞,花了%f元' % (age, name, money))  # 我喜欢看20岁的阿飞跳舞,花了99.960000元

# print('我喜欢看%d岁的%s跳舞,花了%f元' % (name, age, money,))  # TypeError: %d format: a number is required, not str
print('我喜欢看%s岁的%s跳舞,花了%d元' % (age, name, money))  # 我喜欢看20岁的阿飞跳舞,花了99元

2.4 进制转换

n = 149
result = bin(n)
print(result)       # 0b10010101, 二进制
result = oct(n)
print(result)       # 0o225, 八进制
result = hex(n)
print(result)       # 0x95, 十六进制

x = 0b10100011
print(int(x))       # 163

  

2.5 删除

a = 1
print(a)   # 1
del a
# print(a) # NameError: name 'a' is not defined

 

2.6 数值类型

整型(Int)                           - 通常被称为是整型或整数,是正或负整数,不带小数点。

长整型(long integers)               - 无限大小的整数,整数最后是一个大写或小写的L。

浮点型(floating point real values)  - 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 10^2 = 250)

复数( (complex numbers))            - 复数的虚部以字母J 或 j结尾 。如:2+3i

 

int                     long        float      complex

10                 51924361L          0.0        3.14j

100                -0x19323L        15.20         45.j

-786                   0122L        -21.9   9.322e-36j

080    0xDEFABCECBDAECBFBAEl     32.3+e18        .876j

-0490          535633629843L         -90.    -.6545+0J

-0x260        -052318172735L   -32.54e100       3e+26J

0x69         -4721885298529L     70.2-E12     4.53e-7j

 

长整型也可以使用小写"L",但是还是建议您使用大写"L",避免与数字"1"混淆。Python使用"L"来显示长整型。

Python还支持复数,复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。

 

三、数据类型内置函数(以下为Python2中的函数表,部分在Python3不存在)

3.1  Python数学函数

函数                 返回值( 描述 )

abs(x)              返回数字的绝对值,如abs(-10) 返回 10

ceil(x)             返回数字的上入整数,如math.ceil(4.1) 返回 5

cmp(x, y)           如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1

exp(x)              返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045

fabs(x)             返回数字的绝对值,如math.fabs(-10) 返回10.0

floor(x)            返回数字的下舍整数,如math.floor(4.9)返回 4

log(x)              如math.log(math.e)返回1.0,math.log(100,10)返回2.0

log10(x)            返回以10为基数的x的对数,如math.log10(100)返回 2.0

max(x1, x2,...)     返回给定参数的最大值,参数可以为序列。

min(x1, x2,...)     返回给定参数的最小值,参数可以为序列。

modf(x)             返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。

pow(x, y)           x**y 运算后的值。

round(x [,n])       返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。

sqrt(x)             返回数字x的平方根,数字可以为负数,返回类型为实数,如math.sqrt(4)返回 2+0j

 

3.2 Python三角函数

函数            描述

acos(x)      返回x的反余弦弧度值。

asin(x)      返回x的反正弦弧度值。

atan(x)      返回x的反正切弧度值。

atan2(y, x)  返回给定的 X 及 Y 坐标值的反正切值。

cos(x)       返回x的弧度的余弦值。

hypot(x, y)  返回欧几里德范数 sqrt(x*x + y*y)。

sin(x)       返回的x弧度的正弦值。

tan(x)       返回x弧度的正切值。

degrees(x)   将弧度转换为角度,如degrees(math.pi/2) , 返回90.0

radians(x)   将角度转换为弧度

 

3.3 Python数字类型转换

int(x [,base ])         将x转换为一个整数  

float(x )               将x转换到一个浮点数  

complex(real [,imag ])  创建一个复数  

str(x )                 将对象 x 转换为字符串  

repr(x )                将对象 x 转换为表达式字符串  

eval(str )              用来计算在字符串中的有效Python表达式,并返回一个对象  

tuple(s )               将序列 s 转换为一个元组  

list(s )                将序列 s 转换为一个列表  

chr(x )                 将一个整数转换为一个字符  

unichr(x )              将一个整数转换为Unicode字符  

ord(x )                 将一个字符转换为它的整数值  

hex(x )                 将一个整数转换为一个十六进制字符串  

oct(x )                 将一个整数转换为一个八进制字符串  

 

3.4 Python随机数函数

函数                    描述

choice(seq)            从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。

randrange ([start,] stop [,step]) 从指定范围内,按指定基数递增的集合中获取一个随机数,基数缺省值为1

random()               随机生成下一个实数,它在[0,1)范围内。

seed([x])              改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。

shuffle(lst)           将序列的所有元素随机排序

uniform(x, y)          随机生成下一个实数,它在[x,y]范围内。