Python数据类型&变量&分支语句IF

一、Python中的数据类型

计算机顾明思议就是可以做数学运算的机器,因此计算机理所当然的可以处理各种数据,但是计算机能处理的远远不止数值,还有文本,图形,音频,视频网页等各种数据, 不同数据需要定义不同的数据类型

Number【数字:整型,浮点型[小数],复数类型】

String【字符串】

Boolean【布尔类型】

None【空值】

list【列表】

tuple【元组】

dict【字典】

set【集合】

byte【字节】

二、常量和变量

1.常量

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

print(2)
print(2.3)
print(3+5j)

print("hello")
print(True)

2.变量

2.1. 概念

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

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

2.2. 定义
#Python中的变量的定义和数学中变量的定义完全一致
x = 3
y = 4
print(x * y)

x = "abc"
#print(x * y)

#在Java中,int x = 3     x = "hello"

#【扩展】
#Python被称为弱类型语言,动态改变变量的数据类型,容错性比较高
#Java被称为强类型语言,只要变量被定义,它的数据类型将不能发生任何的改变

定义格式:变量名 = 初始值

说明:

​ 变量名: 对于每一个变量,需要给他定义一个名称,定义的规则就是标识符的规则

​ =: 赋值运算符【主要是为了给变量进行赋值】

​ 初始值:第一次给变量赋予的值,在程序运行的过程中,这个值可以随时发生改变,同时确定了变量的数据类型

举例:age = 10

​ age是变量名【引用】,10是初始值

2.3. 变量的使用

代码演示:

#1
#需求:定义一个变量,名字为age,类型为整型,初始值为18
age = 18
print(age)

#需求:定义一个变量,名字为str,类型为string,初始值为hello
str = "hello"

#布尔型
b = True

#2
#变量在程序运行的过程,值可以随时发生改变
str = "abc"

#3
#关于变量的命名
student_name = "zhangsan"
studentName = "zhangsan"

#4
#注意:变量必须先定义,然后再使用
#print(num)   #NameError: name 'num' is not defined

#5
#类似于变量的定义,将常量定义出来
print(10)
print(10 + 4)
print(10 * 8)

#注意:命名规范,遵循常量命名法:字母全部大写
NUM1 = 10
print(NUM1)
print(NUM1 + 4)
print(NUM1 * 8)

#NUM1 = 20

#6
#如果一个表达式需要被重复使用,每次都计算比较麻烦,可以先将表达式的值用一个新的变量保存起来
x = 3
y = 4
print(3 * 4)
print(x * y)
print(x * y)
print(x * y)

result = x * y
print(result)
print(result)
2.4. 作用以及在内存中的存储

作用:需要在内存中开辟一块空间,将指定类型的值存储在这块空间中 age =18

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

手动管理内存和自动管理内存

内存中的数据在不使用的情况会自动进行释放,当没有变量名【引用】指向某个实体的时候,则这个实体会被当做垃圾,只能等待系统的垃圾回收机制回收

代码演示:

#给变量重新赋值
name1 = "叶良辰"
name2 = name1
print(name1)
print(name2)

name1 = "Jack"
print(name1)
print(name2)
2.5.删除变量

注意:当定义一个变量,然后删除,相当于这个变量未被定义

代码演示:

#定义变量
num = 66
print(num)

#删除变量
#del
#变量被删除之后则相当于这个变量未被定义
del num
print(num)
2.6.关键字

关键字: 在Python中,已经被赋予了特殊含义的英文单词

import keyword
print(keyword.kwlist)

python中的关键字共33个:

False class finally is return None continue for lambda try

True def from nonlocal while and del global not with

as elif if or yield assert else import pass

break except in raise

2.7.标识符

在Python程序中自定义的一些英文单词

定义合法标识符的规则:

​ a.只能由数字,字母,下划线组成,不可以是其他的特殊字符【%,&,*,空格等】

​ b.开头不能是数字

​ c.不能是关键字

​ d. 严格区分大小写 例如: age和Age是两个不同的标识符

定义标识符的规范:

​ a. Python官方要求:全部用小写字母,不同单词之间使用下划线分隔 stu_score

​ 遵循驼峰命名法【不同的单词之间使用首字母大写的方式进行分隔】,小驼峰,大驼峰

​ 例如:stuScore StuScore

​ b.尽量做到见名知意

【注意:规则和规范的区别】

作用:给变量,函数等命名,为了进行区分

练习:判断下面标识符合法是否

​ xiaoming 合法

​ $abc 不合法 ,有特殊字符

​ abc_hello 合法

​ 1score 不合法,数字不能开头

​ score123 合法

扩展:

​ 其他标识符的命名规则:

​ 常量: 常量名所有字母大写,由下划线连接各个单词如MAX_OVERFLOW,TOTAL

​ 函数&方法: 函数名应该为小写,可以用下划线风格单词以增加可读性。如:myfunction,my_example_function。

​ 文件名: 全小写,可使用下划线

​ 包: 应该是简短的、小写的名字。如果下划线可以改善可读性可以加入

​ 模块: 与包相同

​ 类: 总是使用首字母大写单词串。如MyClass。内部类可以使用额外的前导下划线

​ 全局变量: 对于from M import *导入语句,如果想阻止导入模块内的全局变量可以使用旧有的规范,在全局变量上加一个前导的下划线。

​ 特定命名方式: 主要是指 xxx 形式的系统保留字命名法。项目中也可以使用这种命名,它的意义在于这种形式的变量是只读的,这种形式的类成员函数尽量不要重载。

2.8. 特点

a.值是随时可以改变

b.使用变量必须在内存中开辟空间

c.变量可以存储可变数据

2.9.意义

计算机存在的意义就是为了解决生活中的一些数据,这些用变量存储

三、输入输出【掌握】

1.print输出

作用:将一些特定的数据输出到屏幕上【调试工具】

代码演示:

#简单用法:每次只输出一个数据,任何类型都可以
print(10)
print("hello")

#可以通过一条print输出多个数据,使用逗号隔开,最终得到的结果将逗号识别成了空格
print(10,"hello")

x = 3
y = 4
print("x + y = ",x + y)

2.input输入

作用:可以将外部的值作为程序中变量的值使用【从控制台获取值】

代码演示:

#注意:当程序执行到input的时候,程序会停止在这个地方,等待用户的输入,
# 当内容输入结束之后,按下enter,此时输入结束
#用户输入的值可以通过变量的形式保存起来
str = input("请输入内容:")
print(str)

name = input("请输入姓名:")
age  = input("请输入年龄:")
print(name,age)


#需求;根据控制台输入的年龄计算还能活多少年
death_age = 100

#注意:通过input获取的数据全部都是字符串
age1 = input("请输入现在的年龄:")
print(death_age - age1)


#字符串和整型之间的转换
"""
int:integer,整型,
str:string,字符串

转换
int()  将字符串转换为整型
str()   将整型转换为字符串
float() 将整型或者字符串转换为浮点型【小数】
"""

#修改上面的获取结果的语句
print("还可以活",death_age - int(age1),"年")
print("还可以活",str(death_age - int(age1)),"年")


#练习:从控制台输入两个数,计算两个数的和,并将结果输出
num1 = int(input("请输入第一个数:"))
num2 = int(input("请输入第二个数:"))
print(num1 + num2)
result = num1 + num2
print(result)

四、运算符和表达式【第一部分】

1.表达式

操作数和运算符组成

1 + 3 - 2

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

2.运算符【掌握】

2.1. 算术运算符
+   -    *【乘法】   /【除法】   %【求余,取模】  **【求幂】  //【取整】

代码演示:

num1 = 5
num2 = 3
print(num1 + num2)
print(num1 - num2)
print(num1 * num2)
print(num1 / num2)  #浮点型:1.6666666666666667    默认精度16位
print(num1 % num2)  #2
print(num1 ** num2) #5的3次方
print(num1 // num2) #获取浮点数的整数部分

#除了+和-之外,其他的算术运算符都是相同的优先级
#出现优先级,解决办法使用括号
print(2 ** 5 * 3)
2.2. 赋值运算符

简单赋值运算符:= 给一个变量进行赋值

复合赋值运算符:+= -= %= /= ....... 给一个变量进行赋值,同时给变量进行相应的运算

代码演示:

#简单
num1 = 10
#注意:在赋值运算符中,先计算等号右边的表达式,然后将计算的结果赋值给等号左边的变量
num2 = num1 + 10
print(num2)

#复合
num3 = 10
num3 += 100   #等价于num3 = num3 + 100
print(num3)
2.3. 关系【条件,比较】运算符

作用:比较大小,得到结果为布尔值【如果表达式成立,则返回True,如果不成立,则返回False】

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

使用场景:if语句,循环

代码演示:

x = 3
y = 5
print(x > y)    #False
print(x < y)

print(x == y)
print(x != y)

print(x >= y)  #False
print(x <= y)  #True
2.4. 位运算符【扩展】

前提:将数字转换为二进制使用

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

代码演示:

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

五、if语句【重点掌握】

1.代码结构

顺序结构:代码从上往下依次执行

分支结构:根据不同的条件,执行不同的语句

循环结构:根据指定的条件,重复执行某段代码

2.分支结构-if语句

2.1简单if语句【单分支】

语法:

if 表达式:

​ 执行语句

说明;要么执行,要么不执行,当表达式成立的之后,则执行语句;如果表达式不成立,则直接跳过整个if语句继续执行后面的代码

注意:表达式为真才执行语句

​ 假:0 0.0 False “” None【空值】

​ 一般情况下,表达式使用都是比较运算符

代码演示:

#单分支
num1 = 50
num2 = 60

#需求:当num1 == num2,则给num1重新赋值为100

#在pYthon中,通过缩进来区分代码块
if num1 != num2:
    num1 = 100

print(num1)


#练习:从控制台输入一个数,判断这个数是否是偶数
num = int(input())
if num % 2 == 0:
    print(num,"是一个偶数")

print(num,"不是一个偶数")
2.2if-else语句【双分支】

语法:

if 表达式:

​ 执行语句1

else:

​ 执行语句2

说明:如果表达式成立,则执行语句1;如果不成立,则执行语句2

代码演示:

#双分支
#  从控制台输入一个数,判断这个数是否是偶数
num = int(input())

if num % 2 == 0:
    print(num,"是一个偶数")
else:
    print(num,"不是一个偶数")


#练习:从控制台输入一个数字,根据数字打印年龄段
age = int(input())
if age >= 18:
    print("成年人")
else:
    print("未成年人")
2.3if-elif-else语句【多分支】

语法:

if 表达式1:

​ 执行语句1

elif 表达式2:

​ 执行语句2

elif 表达式3:

​ 执行语句3

。。。。。

else:

​ 执行语句n

说明:实现了多选一的操作,会根据不同的条件从上往下来进行匹配,如果匹配上了,则执行对应的语句,然后直接结束整个if-elif语句,但是,如果所有的条件都不成立的话,则执行else后面的语句

注意:不管if-elif-else有多少个分支,都只会执行其中的一个分支

代码演示:

#多分支
#需求:从控制台输入一个数字,根据数字打印年龄段
age = int(input())
if age < 0:
    print("输入有误")
elif age <= 3:
    print("婴儿")
elif age <= 6:
    print("儿童")
elif age <= 12:
    print("青少年")
elif age <= 18:
    print("青年")
else:
    print("hello")
#练习:根据控制台输入的成绩,输出对应的等级
"""
90以上:优秀
80~90:良好
70~80:还行
70以下:加油吧,少年
"""
score = int(input("请输入学生的成绩:"))
if score >= 90:
    print("优秀")
elif score >= 80:
    print("良好")
elif score >= 70:
    print("还行")
else:
    print("")


#容易出现的问题:冒号     中文     空格
2.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")
#a
if n > 2:
    print("b")
#b

#双分支:实现二选一
if n > 3:
    print("c")
else:
    print("d")
#d
2.5嵌套if语句

语法:

if 表达式1:

​ 执行语句1

​ if 表达式2:

​ 执行语句2

说明:if语句的嵌套,可以在单分支,双分支,多分支之间进行任意组合

代码演示:

score = int(input("请输入学生的成绩:"))
if score < 0 or score > 100:
    print("输入有误")
else:
    if score >= 90:
        print("优秀")
    elif score >= 80:
        print("良好")
    elif score >= 70:
        print("还行")
    else:
        print("")


age = int(input("请输入年龄:"))
looks = input("请输入您的相貌:")

if age >= 18:
    if looks == "美女":
        print("要微信")
    else:
        print("略过")

注意:从语法角度来说,嵌套的层数没有任何的限制,但是,为了代码的可读性和可维护性,嵌套层数不要超过3层

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343

推荐阅读更多精彩内容