python学习笔记02

 

一、常量和变量

1.Python的数据类型

分类:

​ Number:数字型【整型,浮点型,复数】

​ String:字符串型

​ Boolean:布尔型【True,False】

​ None:空值

​ list:列表

​ tuple:元组

​ dict:字典

​ set:集合

整型:可以处理任意大小的整数,支持二进制

浮点型:在计算机底层,浮点型表示采用的是科学计数法【123.456----》1.23456e2】

复数:数学上:a+bi,-------》a+bj

字符串:是以单引号或者双引号括起来的任意的文本,【‘a’】

布尔值:只有两个值,True,False,关系运算符和逻辑运算符的运算结果一般都是布尔值

2.常量

定义:在程序运行的过程中,值永远不会发生改变的标识符

代码演示:

print(2)
print("hello")
print(True)
print(3+5j)

3.变量

3.1概念

定义:在程序运行的过程中,值可以随意发生改变的标识符

作用:存储数据,参与运算

语法:标识符 = 值

说明:标识符被称为变量名【引用】,第一次给变量的值被称为初始值,=被称为赋值运算符

注意:

​ a.变量名需要遵守标识符的定义规则和规范

​ b.变量的定义会在内存中开辟一个空间,然后在这个空间中存储数据【因为Python是动态数据类型的语言,所以在这个空间中存储的是什么类型的数据无法确定】

3.2使用

代码演示:

#1.定义
#定义一个整型的变量
age = 18
print(age)
​
str1 = "hello"
#变量的值可以随时发生改变
str1 = "abc"
#变量的值发生改变的过程中,类型也可以发生改变【Python是弱类型的语言,动态数据类型的语言,容错性比较高】
str1 = True
print(str1)
​
#2.变量的命名
student_name = "zhangsan"
studentName = "xiaoming"
​
#3.一个变量如果未被定义,则无法使用
#print(num)  #NameError: name 'num' is not defined
#结论:在Python中,代码的执行顺序默认是从上往下依次执行【顺序结构】
​
#4.变量的好处:存储数据,可以应对需求发生改变的情况【提高代码的可维护性】
print(20)
print(20 + 4)
print(20 * 10)
​
n = 20
print(n + 4)
print(n * 10)
​
#5.特殊情况:一般情况下,如果一个变量在代码运行的过程中,不想让它的值发生改变,则通过变量的命名来区分
#解决办法:变量名遵循常量命名法【字母全部大写,不同单词之间使用下划线分隔】
NUM = 3

3.3内存中的变量

思考问题:变量在内存中开辟了空间,内存如何释放?

手动释放内存和自动释放内存

age = 18

说明:定义一个变量,变量名为age,初始值为18.换种说法,引用age指向了18

当没有变量名或者引用指向一个实体的时候,则这个实体被当做垃圾,只能等待系统的回收机制回收它,达到了内存的释放,以便于下次重复使用

代码演示:

name1 = "叶良辰"
name2 = name1
print(name1)
print(name2)
​
name1 = "jack"
print(name1)
print(name2)

3.4删除变量

当变量被删除之后,变量将无法再使用,相当于该变量未被定义

语法:del 变量名

代码演示:

#6.删除变量
number = 90
print(number)
del number
print(number)

3.5总结

特点:

​ a.变量的值是可以随时发生改变的

​ b.变量的使用需要在内存中开辟空间

​ c.变量的意义:为了存储和处理生活中的可变数据

3.6变量的类型转换

int(xxx):将一个数值或者字符串转换为int

float(xxx):将一个数值或者字符串转换为float

str(xxx):将一个数字类型转换为str

代码演示:

num1 = 100
#type():查看变量的数据类型
print(type(num1))   #
#id():查看变量在内存中的地址【变量的地址在内存中使用十六进制表示的一串数字】
print(id(num1))   #1807462592
​
#注意:str()可以将任意类型的变量转换为字符串类型
num2 = str(num1)    #等价于num2 = "100"
print(type(num2))   #
​
num3 = int(num2)
print(type(num3))
​
#注意:将字符串转换为int的时候,必须保证转换之后是完整的数字
str1 = "123"
print(type(str1))
print(int(str1))
​
str2 = "abc"
#print(int(str2))  #ValueError: invalid literal for int() with base 10: 'abc'

二、输入输出

1.输出print

作用:将需要显示的信息输出到控制台

代码演示:

#基本用法
#1.打印一个数据
print("hello")
​
#2.使用一条print语句可以同时打印多个数据,多个数据之间使用逗号隔开
#注意:多个数据之间默认使用空格隔开
print("abc",10,"good",False)
​
#3.可以进行拼接
print(10 + 20)
print("10 + 20 =",10 + 20)
num1 = 10
num2 = 20
print("num1 + num2 =",num1 + num2)
​
#4.可以使用占位符格式化字符串
"""
%d:代表整型
%f:代表浮点型
%s:目前代表的字符串
"""
#注意:一一对应关系
print("%d + %d = %d" % (num1,num2,num1 + num2))
num3 = 1.23456
print(num3)
print("%.2f"%(num3))
#高级用法
#print的完整写法:print(values...,sep=" ",end="\n",file=sys.stdout,flush=False),
# 分隔符,结束符,需要输出到的位置,是否需要刷新
​
#1.values
print("good" * 5)
#"good"
#需要对特殊符号进行转义:告诉编译器,特殊符号需要使用原来的含义  -----》\
print("\"good\"")
​
#字符串的拼接,此处的+被称为拼接运算符,只能是字符串之间的拼接
print("good" + "day")
​
#print("good" + 10)  #TypeError: must be str, not int
​
#2.sep:设置分隔符,默认情况下使用的空格
print("a","b","c",sep="*")
​
#3.end:设置换行符,默认情况下为\n
#在Python3.x中,如果不想要换行,可以设置end=""
print("aaa",end="%")
print("bbb",end="%")
​
#4.file:表示将语句打印到哪个地方,默认情况下输出到控制台
#flush:提高写入文件的效率
#注意:如果向一个文件中写入内容,如果该文件不存在,会自动创建
f = open("text.txt","w")
print("hello",file=f,flush=True)

2.输入input

作用:从外部【控制台】获取数据,给变量赋值,跟print正好是相反的过程,input输入的都是str类型,

代码演示:

#print("请输入你的姓名:")
​
#从控制台获取数据
#当代码执行到input的时候,程序会被阻塞,等待用户的输入
#当用户输入完毕,按下回车键的时候,表示输入完成
#name = input("请输入你的姓名:")
#print(name)
​
#需求:根据用户输入的年龄计算还能活多少年?假设age = 80
#注意:通过input从控制台获取的数据全部都是str
age = input("请输入你的年龄:")
deathAge = 80
print(deathAge - int(age))
print("还可以活",deathAge - int(age),"年")
print("还可以活" + str(deathAge - int(age)) + "年")
​
#练习:从控制台输入两个数,计算乘积
num1 = input("请输入第一个数:")
num2 = input("请输入第二个数:")
num1 = int(num1)
num2 = int(num2)
print("num1 * num2 = ",num1 * num2)

三、运算符与表达式【第一部分】

1.表达式

表达式指的是由操作数和运算符组成的一句代码或者语句

作用:表达式可以用来求值,用来给变量赋值

举例:1+3-2

result = 1+3-2

2.运算符

2.1算术运算符

+   -   *   /   %【求余,取模】   **【求幂】   //【取整】

代码演示:

num1 = 5
num2 = 3
print(num1 + num2)
print(num1 - num2)
print(num1 * num2)
print(num1 / num2)
print(num1 % num2)   #2
print(num1 ** num2)  #125
print(num1 // num2)  #1
​
#注意:在计算机的底层也是通过补码的形式处理数据的
​
#思考问题:求幂运算符的优先级在算术运算符中高于乘法运算符的
print(2 ** 5 * 3)  #96
print(2 * 5** 3)  #250
print((2 * 5)** 3)  #1000

2.2赋值运算符

简单赋值运算符:= 注意:先运算=右边的,再将结果赋值给=左边的变量

复合赋值运算符:+= -= *= /=。。。。。【算术运算符和简单赋值运算符之间的组合】

代码演示:

#简单赋值运算符
num1 = 10
num2 = num1 + 10
print(num2)
​
​
#复合赋值运算符
#工作原理:用变量原来的值进行计算,然后重新赋值给变量本身
n1 = 10
n1 += 20   #等价于n1 = n1 + 20
print(n1)

2.3关系【条件,比较】运算符

== !=【不等于】 < > <= >=

注意:关系运算符运算的结果都是布尔值,成立则为True,不成立则为False

代码演示:

m = 10
n = 20
print(m == n)
print(m != n)
print(m < n)
print(m > n)
print(m >= n)
print(m <= n)

2.4位运算符【了解】

注意:在计算机的底层按照二进制的方式处理

&【按位与】 |【按位或】 ^【按位异或】 ~【按位取反】 <<【左移】 >>【右移】

代码演示:

print(6 & 3)
print(6 | 3)
print(6 ^ 3)
print(~6)
print(6 << 2)
print(4 >> 2)
print(-6 >> 2)

四、if分支语句【完全掌握】

Python中语句的分类:顺序结构,分支结构,循环结构

1.简单if语句【单分支】

语法:

if 表达式:

​ 语句

工作原理:当程序执行到if语句的时候,首先判断表达式的值,如果表达式的值为真,则执行缩进的语句;反之,则跳过整个if语句继续执行后面的语句

注意:

何为真假

​ 假:False,0 , 0.0 , None ,""或者''

代码演示:

import random
​
num1 = 50
num2 = 60
​
if num1 != num2:
    num1 = 100
​
print(num1)
​
#练习:模拟彩票【随机获取一个数,从控制台输入一个数,比较两个数,如果相等,则说明中奖】
#第一步:导入random
#第二步:在0~99之间获取随机数
res = random.choice(range(100))
print("获取到的随机数是:",res)
num = int(input("请输入一个数:"))
if res == num:
    print("中奖")

2.if-else语句【双分支】

语法:

if 表达式:

​ 语句1

else:

​ 语句2

工作原理:当程序执行到if语句的时候,首先判断表达式的值,如果表达式的值为真,则执行缩进的语句1;反之,则执行语句2

本质:实现了二选一的操作

代码演示:

#需求:从控制台输入一个数,判断该数是否为偶数
num1 = int(input("输入一个数:"))
"""
if num1 % 2 == 0:
    print("是偶数")
​
print("是奇数")
#问题:使用单分支判断不严谨,当num1为偶数的时候“是偶数”和“是奇数”都会打印出来
"""
if num1 % 2 == 0:
    print("是偶数")
else:
    print("是奇数")
​
#练习:根据年龄的不同打印不同的内容
age = 20
if age >= 18:
    print("成年")
else:
    print("未成年")

3.if-elif-else语句【多分支】

语法:

if 表达式1:

​ 语句1

elif 表达式2:

​ 语句2

elif 表达式3:

​ 语句3

。。。

else:

​ 语句n

工作原理:当程序执行到if语句的时候,首先判断表达式1 的值,如果表达式1的值成立,则执行语句1,整个if-elif语句结束;如果表达式1的值不成立,则接着判断表达式2的值。。。。

如果所有的表达式都不成立的时候,则执行else后面的语句n

本质:实现了多选一的操作【注意:不管其中的几个表达式成立,都只会执行其中的一个分支】

代码演示:

age = int(input("请输入年龄:"))
if age < 0:
    print("输入有误")
elif age <= 3:
    print("婴儿")
elif age <= 18:
    print("少年")
elif age <= 50:
    print("成年")
elif age <= 120:
    print("老年")
else:
    print("这都成老八怪了吧")

4.三者之间的区别

代码演示:

n = 3
#多分支
if n > 1 :
    print("a")
elif n > 2:
    print("b")
elif n > 3:
    print("c")
else:
    print("d")
#a
​
# 单分支
if n >1 :
    print("a")
if n > 2:
    print("b")
#ab
​
 #双分支   
if n > 3:
    print("c")
else:
    print("d")
#d

5.嵌套if语句

本质:在一个if语句中可以书写其他的if语句

语法:

if 表达式1:

​ 语句1

if 表达式2:

​ 语句2

工作原理:只有当表达式1 和表达式2同时成立的时候,语句2才有被执行的机会

代码演示:

m = 2
n = 3
if m < 5:
    print("成立1")
    if n > 5:
        print("成立2")

注意:从语法角度上来说,嵌套的层数没有限制,但是,从代码的可读性,一般情况下,嵌套的层数不超过3层

你可能感兴趣的:(python)