1-2 变量数据类型 运算符

1.变量数据类型

重点

项目名称:数字、字母、下划线组成 数字不能开头

process finished with exit code 0 code为0表示程序正常结束 非0则有错

syntaxError:语法错误

默认的模板内容: flie and code templates 选Python script 在此加有效或无效代码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y5vZQntk-1679659996076)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20230209084130726.png)]

快捷键Ctrl+/ 加注释和取消注释

关键字

‘False’, ‘None’, ‘True’, ‘peg_parser’, ‘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’

一行的开头不能随便加空格 不需要分号

indentation :unexpected indent 缩进错误

标准化快捷键 Ctrl+Alt+L

数字的科学化 3e4 表示3*10的4次方 打印出来是30000.0

文本数据 用**’ '** 和**“ ”**都可以

True和False 两个值(首字母要大写)是布尔值

1. 注释

注释指的是程序中不参与编译执行(不影响程序功能)的部分就注释
1.1 单行注释
在一行注释内容前加# (快捷键 Ctrl+/) 加注释和取消注释
1.2 多行注释
将注释内容放在"““开头结果或者’''开头结果的中间””"

'''
多行注释
'''
"""
多行注释
"""

1.3 注释的作用

1)对代码进行注解和说明,提高代码的可读性

2)取消代码功能

2.标识符 -命名要求

Python语法中如果需要给某个东西取名字,名字必须是标识符

标识符:由字母数字下划线组成,并且数字不能开头

#例如:变量名 = 数据
a1=20
b_1=3
__d=4
abc=2

3.关键字

关键字就是本身具有特殊意义或者特殊功能的标识符,关键字不能用来作为名字使用

#打印Python中所有的关键字
import keyword
print(keyword.kwlist)

关键字

false none true --peg_parser__ 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

4.行和缩进

1)一条语句占一行,一行结束不需要分号

print(100)
print(200)

2)一行的开头不能随意添加缩进(空白符号)

    print(100)
IndentationError: unexpected indent		 #报错 缩进错误

3)多条语句放一行 语句之间必须要有分号

print(100);print(200)

5.常见的数据和数据类型

1)数字数据:

用来表示数值大小的数据,比如:年龄、价格、身高、体重、数量(电话号码不是数字数据
程序中表示数字的方式和数学中一样:18 3.14 3e4 (科学化30000.0)

​ 数字对应的类型:int(整型-整数,所有不带小数点的数据对应的类型)、float(浮点型-小数。所有带小数点的数对应的类型)

print(100)
print(3,1423648)
print(-100)
print(+100)
print(3e4)			 #3*10*10*10*10=30000.0

2)文本数据:

用文字符号来表示信息的数据,比如:姓名、籍贯、民族、店铺名、身份证
程序中表示文本数据:必须将数据放在单引号或者双引号里面:‘玉婷’ 、‘重庆’、" wgheui"

​ 文本数据对应的类型:str(字符串类型-Python没有字符类型)

tel='172184414'
print(tel)			#'172184414' 
name='余婷'
print("电子信息")
print('heelo world')

3)布尔数据:

只有True和False 两个值(首字母要大写),其true表示真、成立、肯定的回答,False表示假、不成立、否定的回答
程序中表示布尔值的时候直接写True或者False
布尔对应的类型:bool(布尔)

print(100>200)			#False

4)空值:

用None来表示没有、空

'name':'余婷',
'age':'18',
'isMarried':'True',
'carNo':None

5)用type来查看数据类型

flag=True
print('认识你很高兴',flag,type(flag))			#True <class 'bool'>表示类

6.可变数据类型和不可变数据类型

1.可变数据类型:

变量引用的数据类型,在更改数值的时候,存在不开辟新内存的行为,此数据类型为可变数据类型。

列表、字典、集合、布尔类型

2.不可变数据类型 :

变量引用的数据类型,在更改数值的时候,不存在不开辟新内存的行为,此数据类型为不可变数据类型。

元组、字符串、日期、整数、浮点数

对于整数,数值改变,内存地址改变;数值不变,内存地址相同

num = 1
print(id(num))#4440852832
 
num = num + 1
print(id(num))#4440852864
 
example = 2
print(id(example))#4440852864

7.类型转换:类型名(数据)

int() 将一个数值或字符串(‘12’)转换成整数

int(True) #1
int(False)#0
int(None) #会报错 空值不能转换为整数
print(10 + True)#11
print(int(-4.34))  # -4

**float()**将一个字符串(‘12’)(‘12.4’)转换成浮点数

float(True)#1.0
float(False)#0.0
float(None)#会报错 空值不能转换成浮点数

str() 将指定的对象转换成字符串形式

所有类型的数据都可以转换成字符串,转换的时候直接在原数据外面加引号

chr()、ord()是对于8位ASCII字符串的配对函数

chr() 整数转换为对应的字符

**ord()**字符转换成整数

#ASCII码表对照表
0-9 : 48-57
A-Z : 65-90
a-z : 97-122

bool() 字符串非空为True 数字非0为True

bool('') # False
bool(0) # False
bool(0.0) # False
bool(None)# False
bool('1255')# True

2.运算符

重点

input函数的类型都是字符串类型 文本数据

变量赋值的意义直接使用print里的内容 数据没有意义 则需要运用变量进行赋值

dog_name 是属于PEP8的命名规范 dogName 是属于驼峰式命名 可以识别 但是有点隐患

变量的类型最好不要固定 可以保存不同类型的数据

C语言储存数据根据类型大小是固定的 Python储存数据根据数据大小进行储存的

除法运算的结果一定是浮点数float类型

Python不支持赋值表达式 x=(y=2*3)是错的 x=(y:=2*3)支持

C-编译型语言

C源码(.c)—(编译)---->可执行文件(.exe)-----(执行)------>计算机执行

Python-解释型语言

Python源码(.py) ---------解释执行--------->计算机执行

需要一边翻译一边执行,所以执行的速度较慢。优点是较灵活。

1.输入和输出函数

1.输出函数(打印函数) -print

控制台显示的内容一定是程序中print打印的内容;如果想要将某个数据显示在控制台,那必须在程序中用print去打印它

**1)一次打印一个数据: **

print(数据)

print(100)
print('hello world')
print(100+200)
2)同时打印多个数据:

print(数据1,数据2,数据3,…)

print(10,20)
print(100,200,'asc')
**3)定制 end: **

print(数据1,数据2,数据3…end=‘’)

print打印数据的时候,会先将所有的数据依次打印到控制台中,打印完数据后,会自动打印end的值(end默认是换行)

print(100,end='abc')
print(200)#100abc200
4)定制sep:

print(数据1,数据2,数据3…sep=字符串,end=字符串)

一个print同时打印多个数据时,数据和数据之间的分割方式由sep的值决定,sep默认是空格。

print(10, 20 , 30,sep='+',end='a') #10+20+30a

2.输入函数 -input

输入函数就从控制台获取数据到程序中使用

1)基本用法

变量 = input(‘输入提示信息’)

name=input('请输入你的名字')
print(name)
username = input('用户名:')		#输入用户名
password = input('密码:')	
# 判断两个数据是否相等
if username == 'admin' and password == '123456':	#验证是否输入的admin与123456
    print('登录成功')		#是的话登录成功
else:
    print('登录失败')

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PMJH0ZhE-1679659996078)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20230207190512108.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FXKjpbbE-1679659996078)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20230207190558839.png)]

**2)**input函数的结果为字符串类型

input函数不管输入的数据是什么,得到的数据类型都是str(字符串类型) 文本数据

#反例
age = input('输入年龄')
print(age<18)               # '18' 会报错 所以要类型转换

weight=input('请输入体重(kg):')
print(weight*2,'斤')			#输入45输出4545斤

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SJjTypyF-1679659996079)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20230207191317125.png)]

#进行类型转换
age = int(input('输入年龄'))
print(age < 18) 				#输入18 输出False

weight=float(input('请输入体重(kg):'))
print(weight*2,'斤')				#输入45输出90.0斤
3) input(‘int%d:’ %(i))

输入提示中引用变量

raw =[]
for i in range(3):
    x = int(input('第%d个:' %(i)))
    raw.append(x)
    print(raw)

3. eval 函数

注意eval只能对字符串进行操作

1.eval无参实现字符串转化
s = '1+2+3*5-2'
print(eval(s))  #16
2.字符串中有变量也可以
x = 1
print(eval('x+2'))  #3
3.字符串转字典
print(eval("{'name':'linux','age':18}"))
#输出结果:{'name':'linux','age':18}
4.eval传递全局变量参数

注意字典里的:age中的age没有带引号,说明它是个变量,而不是字符串。
这里两个参数都是全局的

print(eval("{'name':'linux','age':age}",{"age":1822}))
#输出结果:{'name': 'linux', 'age': 1822}
print(eval("{'name':'linux','age':age}",{"age":1822},{"age":1823}))
#输出结果:{'name': 'linux', 'age': 1823}

eval传递本地变量,既有global和local时,变量值先从local中查找。

#eval传递本地变量,既有global和local时,变量值先从local中查找。
age=18
print(eval("{'name':'linux','age':age}",{"age":1822},locals()))
#输出结果:{'name': 'linux', 'age': 18}
print("-----------------")
print(eval("{'name':'linux','age':age}"))
#输出结果:{'name': 'linux', 'age': 18}

2.变量

1.数据的使用方法

在程序中数据用的时候应该先将数据保存到变量中,然后再通过变量来使用变量中保存的数据

2.定义变量

1)语法: 变量名=数据

x = 13
y = '我的命名'
z = 12 + 23
print(z)

2)说明

a.变量名 - 由程序员自己命名;

​ *2个要求:*是标识符;不是关键字

3个规范:

​ a.见名知义(看到变量名就大概知道变量中保存的是什么数据)
​ b.不使用系统函数名(比如:print、input、type、…)、类名(int、 float、str、…)和模块名
​ c.所有字母都小写,多个单词之间用下划线隔开(PEP8)

b. = - 固定写法
c. 数据 - 需要保存到变量中的具体的数据(可以是具体的某种类型的数据,也可以是某个运算表达式的结果)

3.使用变量

使用变量就是使用变量中保存的数据(数据能做的事情,保存数据的变量都可以做)

注意:变量必须先定义再使用

a=10
print(10)
print(a)	

print(10+20)
print(a+20)

num1=10
num2=a		#num2=10
print(num2)

4.重新给变量赋值

同一个变量可以保存不同类型的数据

1)变量名1 = 变量名2 = 变量名3 = … = 数据 - 同时定义多个变量赋相同的值

a1 = b1 = c1 = 100
print(a1, b1, c1)

2)变量名1, 变量名2, 变量名3, … = 数据1, 数据2, 数据3, … - 同时定义多个变量赋不同的值(变量的数据必须和数据的数量保持一致)

x, y = 100, 200
print(x, y)

变量的类型不固定 最好不要强制固定

xx=100
print(xx)

xx=('abc')
print(xx)     #结果是最新赋的值

5. id函数 - 获取变量对应的内存地址

a = 10
print(id(a))

6.底层逻辑

Python和C语言相比:

python: a=10 a=‘ghh’ a=[u,6,8]

C: int a =10

python定义变量是根据数据大小 定义内存储存变量的大小 且同一个变量可以保存不同的数据类型。重新为变量a 赋值,内存先取新数据的存储空间,存储了新数据,再将原数据移除。

C语言定义变量需要指明数据类型,根据数据类型定义内存储存变量的大小。重新为变量赋值 只能赋值符合数据类型的 且内存存储变量大小不变。

3.运算符

1.数学运算符:

*+(加)、-(减)、 (乘)、 /(除)、%(取余、取模)、//(整除)、(幂运算)

1.加减乘除

+、-、*、/的功能和数学中的功能是一样的

print(5+3)	#8
print(4-1)	#3
print(2*3)	#6
print(8/2)	#4.0

注意:除法运算的结果一定是浮点数float类型

**%(取余)**的运用场景:

1.判断两个整数之间是否存在整除关系(判断一个数是否能够被另一个数整除)

num1 = 342
num2 = 4
print(num1 % num2 == 0)	#False

num3 = 78
print(num3 % 2 == 0)  # True

2.获取整数的低位数(对10取余)

num=22224
print(num%10)	#4
print(num%100)	#24
print(num%1000)	#224

//(整除)向小取整

print(-8 // 3)  # -3
print(3.6 // 2)  # 1.0

应用场景:

1.完整的个数

#例如time中有多少个完整的小时
time = 23443
print(time // 3600)

2.获取整数1高位数。去掉低位数

#求num的十位数
num5 = 23554
print(num5 // 10)		#2355
print(num5 // 10 % 10)	#5
2.比较运算符:

>、<、==、!=、>=、<=

1.比较运算符的结果一定是bool值(布尔)

2.支持连写表示范围

age=24
print(18 <= age <= 28)
(其他语言中 age>=18 and age<=28)
3.逻辑运算符

and(逻辑与运算)、or(逻辑或运算)、not(逻辑非运算)

逻辑运算符使用在程序中连接多个条件形成复合条件的

1. and(逻辑与运算)

​ 应用场景:连接需要同时成立的两个条件,相当于‘并且’
​ 运算规则:
​ True and True - True
​ True and False - False
​ False and True - False
​ False and False - False

#判断num是否能够同时被3和7整除
num=42
print(num % 3 == 0 and num % 7 ==0) 
print(num % 21 == 0 )

2. or(逻辑或运算)

​ 应用场景:两个或者多个条件有一个成立就行,相当于‘或者’
​ 运算规则:
​ True or True - True
​ True or False - True
​ False or False - False
​ False or True - True

#判断year是否为闰年(闰年分为世纪闰年(能被400整除)和普通闰年(能被4整除但是不能被100整除)两种)
year = 1998
print('year是否为闰年:', (year % 400 == 0) or (year % 4 == 0 and year % 100 != 0))

3. not(逻辑非运算)

​ 应用场景:对应某一个条件进行否定,相当于‘不’

4.赋值运算符

=、+=、*=、/=、%=、//=、=**

注意:不管是什么样的赋值运算符,他们的目的都是将数据保存到变量中

1.=(赋值符号)

​ 变量 = 数据 - 将=右边的数据直接保存到左边的变量中)

2.复合的赋值运算

​ 变量 += 数据 - 将变量中的数据取出和后面的数据进行加法运算,最后将计算结果重新赋值给前面的变量

a = 10
a += 30
print(a)	#40

b = 100
b -= 20
print(b)  # 80

b *= 2
print(b)  # 160

b %= 2
print(b)  # 0

c = 7
c /= 2
print(c)  # 3.5

c //= 2
print(c)  # 1.0
5.运算符的优先级

1.数学运算符>比较运算符>逻辑运算符>赋值运算符(最低)

2.**>*、/、//、%、>、+、-

3.and > or

4.有括号先算括号里的 -()
年(能被400整除)和普通闰年(能被4整除但是不能被100整除)两种)
year = 1998
print(‘year是否为闰年:’, (year % 400 == 0) or (year % 4 == 0 and year % 100 != 0))


**3. not(逻辑非运算)**

​		应用场景:对应某一个条件进行否定,相当于‘不’

#### 4.赋值运算符

**=、+=、*=、/=、%=、//=、**=**

**注意:不管是什么样的赋值运算符,他们的目的都是将数据保存到变量中**

**1.=(赋值符号)**

​		变量 = 数据	-	将=右边的数据直接保存到左边的变量中)

**2.复合的赋值运算**

​		变量 += 数据	-	将变量中的数据取出和后面的数据进行加法运算,最后将计算结果重新赋值给前面的变量

```python
a = 10
a += 30
print(a)	#40

b = 100
b -= 20
print(b)  # 80

b *= 2
print(b)  # 160

b %= 2
print(b)  # 0

c = 7
c /= 2
print(c)  # 3.5

c //= 2
print(c)  # 1.0
5.运算符的优先级

1.数学运算符>比较运算符>逻辑运算符>赋值运算符(最低)

2.**>*、/、//、%、>、+、-

3.and > or

4.有括号先算括号里的 -()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值