Python初学者看这一篇就够了【1】——数据与变量

第1节课 数据与变量

程序 = 数据 + 指令

1.1 内置基本数据类型

(1)数值型

整数(int):用于表示整数,注意一点Python中int数据可以存储任意大小整数,不会像其他语言(C\C++ Java)会存在整型溢出的问题

>>> print(1010101010101010101118923986192673987123 + 1)
1010101010101010101118923986192673987124
>>> print(12)
12
>>> print(0b1011)	# 二进制
11
>>> print(0o123)	# 八进制
83
>>> print(0x1A2B3C)	# 十六进制
1715004

浮点数(float):用于表述小数,浮点数存在科学计数法,由于小数实际上用二进制存储的,可能会存在误差(如果要进行非常精确的小数运算时,浮点数就不适用)

>>> print(3.14)
3.14
>>> print(3.14e10)
31400000000.0
>>> print(3.14e-5)
3.14e-05
>>> print(3.14e-3)
0.00314

复数:由实部和虚部构成数字,a + bj

>>> 3 + 1j
(3+1j)
>>> 1 + 2j
(1+2j)
>>> (3 + 2j) * (2 - 3j)
(12-5j)

(2)布尔类型(bool)

只有两个值 TrueFalse,常用于逻辑判断。Python中 True表示真,False表示假,但是从实际而言,就是用1和0来表示的。

>>> print(True + 1)
2
>>> print(False - 1)
-1

(3)字符串类型(str)

字符串是由零个或多个字符组成的不可变序列,可以使用单引号、双引号、三单引号、三双引号表示字符串。

字符串主要表现的是文本数据。

>>> print("123")
123
>>> print("123 + 123")
123 + 123
>>> print('''Hello'''')
  File "<stdin>", line 1
    print('''Hello'''')		# 非法结束符错误
                     ^
SyntaxError: unterminated string literal (detected at line 1)
>>> print('''Hello''')
Hello
>>> print("""Hello""")
Hello
>>> print('Hello')	# 单引号在C\C++ Java 表示字符数据 在Python一律当成字符串来处理
Hello
>>> print("")	# 空串 没有字符的字符串 

(4)空置类型

None是Python中一个特殊值,表示空或者无意义。

>>> print(None)
None
>>> None + 1
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'

1.2 变量与数据类型

(1)变量的定义与赋值

变量,表示程序中临时存储数据的容器

在Python,变量是不需要声明类型的,直接赋值即就是创建变量,赋值用=表示,把=右边的结果赋值给左边

>>> age = 25 # int age = 25
>>> name = "张三"	# 是第一次出现 创建变量
>>> name = "李四" # name已经有了 修改变量
>>> name
'李四'

(2)变量命名规则,标识符

就是给程序当中某些数据进行命名,自定义名称

  • 变量名只能包含字母、数字、下划线,且不能以数字开头
  • 变量名是区分大小写的,age、Age,AGE其实三个变量
  • 不能使用Python的关键字作为变量名

(3)关键字

在Python语法当中,已经给一些单词赋予了特殊的含义,我们就不能随意使用了

以下是Python所有的关键字:

>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
>>> True = 3.14
  File "<stdin>", line 1
    True = 3.14
    ^^^^
SyntaxError: cannot assign to True
>>> if = 1
  File "<stdin>", line 1
    if = 1
       ^
SyntaxError: invalid syntax

(4)标识符的命名规范

  • 变量和函数的命名:变量和函数名称通常使用小写字母,单词之间用下划线分隔,蛇形命名法。
my_age
last_time
first_run()
 
# 小驼峰写法 除了第一个单词首字母小写外 其他单词首字母都大写
myAge
lastTime
firstRun
  • 类命名:大驼峰 所有单词的首字母大写
MyAge
YourBoyFriend
  • 常量命名:所有的单词字母都大写,单词之间用下划线分隔
MAX_VALUE
SUM_OF_ARR

(5)内置函数名称也不要随便乱用

Python当中的变量由于没有类型的约束,所以存啥都可以,甚至是函数\类\对象

把内置函数的名称当成一个变量看待就行了

>>> print(1 + 2)
3
>>> num = print
>>> print = 1
>>> print + 1
2
>>> num(1 + 2)
3

(6)数据类型

可以使用内置函数type()来去查看变量或数据的类型

>>> type(1)
<class 'int'>
>>> num = 1
>>> type(num)
<class 'int'>
>>> num = 3.14
>>> type(num)
<class 'float'>
>>> num = "Hello"
>>> type(num)
<class 'str'>
>>> num = True
>>> type(num)
<class 'bool'>
>>> num = 3 + 1j
>>> type(num)
<class 'complex'>
>>> num = None
>>> type(num)
<class 'NoneType'>

Python中的变量赋值是动态的,虽然很灵活,但是你得注意变量的运算

>>> num = 1
>>> num + 1
2
>>> num = "Hello"
>>> num + 1
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can only concatenate str (not "int") to str

(8)变量的多重赋值与交换

可以同时给多个变量进行赋值,也可以进行快速变量交换的问题

>>> a,b,c = 1,2,3	# 多重赋值
>>> a
1
>>> b
2
>>> c
3
>>> a = b = c = 3	# 链式赋值
>>> a
3
>>> b
3
>>> c
3

>>> a = 3
>>> b = 10
>>> temp = a
>>> a = b
>>> b = temp
>>> a
10
>>> b
3

>>> a,b = b,a
>>> a
3
>>> b
10

1.3 基本数据类型转换

在Python中,数据类型转换主要有两种,隐式转换,显式转换

(1)隐式转换

Python会在某些运算中自动进行数据类型转换,以保证运算的顺利进行,通常是将低精度的类型转为高精度的类型

>>> num = 1
>>> type(num)
<class 'int'>
>>> num = num + 3.14
>>> num
4.140000000000001
>>> type(num)
<class 'float'>

(2)显示转换

使用内置函数来操作

  • 转为整数
>>> num = 3.9
>>> int(3.9)	# 将小数转为整数 直接砍掉小数部分
3

>>> num = "123"
>>> int(num) + 1	# 将数字字符串转为小数
124

>>> num = "123abc"
>>> int(num)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '123abc'

>>> int("1011",2)	# 2指定字符串为二进制数字字符串来进行解析 -> 十进制
11

>>> int("123",4)
27

>>> int("1234",3)	# 3和4 不属于三进制范围(0~2)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 3: '1234'

 >>> int("jahsgdjkhvasaz123g213",36)
257879087050173629504097140435271

>>> int("jahsgdjkhvasaz123g213",36)
257879087050173629504097140435271

最小二进制,最大三十六

>>> int("00000",1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: int() base must be >= 2 and <= 36, or 0 (默认十进制)
  • 转浮点数
>>> num = 1
>>> num = num + 0.0
>>> num
1.0
>>> num = 1
>>> float(num)	# 整数转小数 加小数点.0
1.0

>>> num = "3.14"
>>> float(num) # 小数字符串转小数
3.14
>>> float(num,2) # 不支持指定进制
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: float expected at most 1 argument, got 2
  • 转字符串

任意数据加str()函数一套即可

>>> num = 1
>>> str(num)
'1'
>>> num = 3.14
>>> str(num)
'3.14'
>>> num = True
>>> str(num)
'True'
  • 转换为布尔类型

以下数据转为布尔类型时为 False:00.0None""

其他均为 True

>>> bool(0)
False
>>> bool(1)
True
>>> bool(-1)
True
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值