数据类型基础
数字类型
整数
- 作用:可以用来表示年龄、数量
- 定义:
age = 18 也可以这样定义:age=int(18)
- 怎么用:可以用来加减乘除,逻辑运算
浮点数
- 作用:表示有小数的数
- 定义:
weight = 63.7 或者: weight = float(63.7)
- 怎么用:可以用来加减乘除,逻辑运算
字符串
-
作用:表示名字,爱好,性别
-
定义:
name = 'Gredae' 或者: name = "Gredae"
-
怎么用:只能+、*和逻辑比较
msg2 = "Hi!" msg3 = 'my name is "Gredae"' print(msg2 + msg3) # Hi!my name is "Gredae" name = 'Gredae' print(name * 10) # 将会输出十遍'Gredae' a = 'a' b = 'b' print(a > b) # False 字符串的比较是按照ASCII表进行比较
列表
-
作用:可以用来你的多个爱好
-
定义:
hobby_list = ['唱',’跳‘,’rap‘,'篮球']
-
怎么用:通过列表的索引进行取用,并且索引是从0开始
hobby_list = ['唱',’跳‘,’rap‘,'篮球'] # 索引序号 0 1 2 3 # 取出第二个爱好 print(hobby_list[1]) # 跳
字典
-
作用:是以key:value的形式存放描述信息和值
-
定义:
user_info = {'name': 'Gredae', 'age': 18}
-
怎么用:字典的取值不依赖于索引,而是key,通过key过去其对应的value
user_info = {'name': 'Gredae', 'age': 18} print(user_info['name']) # Gredae
布尔
-
作用:用于表示条件的判断结果
-
定义:通常情况下不会直接引用,一般是逻辑判断得到结果
-
怎么用:
a = 10 b = 20 print(a == b) # False
解压缩
当我们需要一次性取出列表中的多个值,我们便可以使用用下面的方式实现
name_list = ['Gredae', 'ros', 'jason', ]
x, y, z = name_list
print(f'x:{x}, y:{y}, z:{z}') # x:Gredae y:ros z:jason
有时候往往我只需要这个列表中的几个值,那么我们便可以用下面的方法实现
name_list = ['nick', 'egon', 'jason', 'tank']
x, y, z, a = name_list # x='nick' y='egon' z='jason' a='tank'
x, _, z, _ = name_list # '_'相当于告诉计算机不要了
如果你要的两个值之间间隔许多个值,那么你便可以用下面这种方法
name_list = ['nick', 'egon', 'jason', 'tank', 'kevin', 'jerry']
x, y, _, _, _, z = name_list
x, y, *_, z = name_list # 告诉计算机将中间若干个不要
当然字典也是可以用来解压缩,但是,解压缩出来的是它的key
info = {'name': 'nick', 'age': 18}
x, y = info
print(x, y) # name age
Python与用户交互
我们现在要去ATM上取款,那么这个ATM是不是会要求我们输入姓名、密码?是不是需要我们输入我们需要取款金额?这是不是就可以理解为一种交互。
name = input('请输入你的姓名:')
pwd = input('请输入你的密码:')
···经过一番运算···
print('登录成功!')
money = input('请输入取款金额:')
···又经过一番运算···
print('对不起,余额不足!')
格式化方法
占位符
我们平时输出语句的时候都是这样输出的My name is xxx ,my age is xxx.
既然有这种需要,那么Python便有了这样的输出方法:
name = 'Gredae'
age = 18
print('My name is '+name+' ,my age is '+str(age))
# 结果:My name is Gredae ,my age is 18
但是,有时候我们会觉得这样拼接字符串有一些麻烦,于是便有了占位符的做法。%d(只针对数值型),%s(针对任何类型)
name = 'Gredae'
age = 18
print('My name is %s, my age is %s' % (name, age))
# 结果:My name is Gredae ,my age is 18
format格式化
一个很鸡肋的格式化的方法,如果你需要使用这个,遇到多参数的时候,还是需要在句子后面噼里啪啦传上一大堆参数。使用这个不如用占位符或下面的f-String格式化。
name = 'Gredae'
age = 18
print("Hello, {}. You are {}.".format(name, age))
# 结果:Hello, Gredae. You are 18
print("Hello, {1}. You are {0}.".format(name, age))
# 结果:Hello, 18. You are Gredae
f-string格式化
相比较占位符的方式,python3.6版本新增了f-String格式化的方式,比较简单易懂,推荐使用这种方式。
name = 'Gredae'
age = 18
print(f'My name is {name} ,my age is {age}')
# 结果:My name is Gredae ,my age is 18
不论是 f 还是 F 都适用
name = 'Gredae'
age = 18
print(F'My name is {name} ,my age is {age}')
# 结果:My name is Gredae ,my age is 18
基本运算符
当我们眼前飘过一只生物后,我们会立即获得这个生物的信息,种类、性别、身高、有没有危险,当我们获取这些信息的同时,我们还会马上对这些信息做一些逻辑处理,如这个生物种类是老虎的时候,我们会跑开
算术运算符
就是我们平时使用的加(+)、减(-)、乘(*)、除(/)、取余(%)、幂(**)和Python中的整除(//)
a=10 , b=20
比较运算符
a=10 , b=20
赋值运算符
a=10 , b=20
逻辑运算符
a=10 , b=20
a = 10
b = 20
if a and b :
print "变量 a 和 b 都为 true"
else:
print "变量 a 和 b 有一个不为 true"
if a or b :
print "变量 a 和 b 都为 true,或其中一个变量为 true"
else:
print "变量 a 和 b 都不为 true"
a = 10
print(bool(a)) 结果:True
print(not a) 结果:False
身份运算符
is和==的区别:is用于判断两个变量引用对象是否为同一个(是否在同一块内存空间中), ==用于判断引用变量的值是否相等。
Python运算符的优先级
流程控制之if判断
if判断是干什么的呢?if判断其实是在模拟人做判断。就是说如果这样干什么,如果那样干什么
-
if
if 条件: 代码1 代码2 代码3 ... name = 'luren' if name == 'python': print('Hello Python!')
-
if…else
if 条件: 代码1 代码2 代码3 ... else: 代码1 代码2 代码3 ... name = 'luren' if name == 'python': print('Hello Python!') else: print(f'Hello {name}')
-
if…elif…else
if 条件1: 代码1 代码2 代码3 ... elif 条件2: 代码1 代码2 代码3 ... else: 代码1 代码2 代码3 ... number = 18 age = int(input("请猜年龄: ")) if guess < number: print("猜的数字小了...") elif guess > number: print("猜的数字大了...") else : print("恭喜,你猜对了!")
-
if嵌套
if 表达式1: 代码1 if 表达式2: 代码2 elif 表达式3: 代码3 else: 代码4 elif 表达式4: 代码5 else: 代码6 number=int(input("输入一个数字:")) if number%2==0: if number%3==0: print ("你输入的数字可以整除 2 和 3") else: print ("你输入的数字可以整除 2,但不能整除 3") else: if number%3==0: print ("你输入的数字可以整除 3,但不能整除 2") else: print ("你输入的数字不能整除 2 和 3")
while循环
循环就是一个重复的过程,我们人需要重复的干一件事情的时候,就会想到能不能让计算机代替我们人来干活。
while循环的格式
while 条件:
代码一
代码二
代码三
例:
n=0
while n<10:
print(f'这是数字{n}')
n+=1
while 循环也叫条件循环,也和条件判断一样只有条件为True时才进行循环,那么有没有else呢?
while n < 10:
print(f'这是数字{n}')
n+=1
else:
print('算不过来了')
#只有当while循环的条件为False的时候才会执行else中的内容
while循环的嵌套
while循环的嵌套便是在while循环中再加一个或多个while循环
a = 1
while a < 10:
b = 0
while b < 10:
print(f'{a}.{b}')
b += 1
a += 1
结果:
1.0
1.1
1.2
1.3
...
9.9
while循环的退出
在我们平时做事情的时候肯定是不会无缘无故便停下来的吧,机器也是这样的。当满足了某个条件的时候才会停下。
barek
那么便用到了break来退出循环
n = 1
while n < 1000:
if n < 10:
print(f'这是数字{n}')
else:
print('大于9的我不会数了,我不数了!!罢工。。。')
break
n+=1
#当n大于等于10的时候,便会退出这个循环,相当于这件事不做了
continue
如果说,我只是现在不做这事,等一会再做这个事的话,那就用到continue了
n = 1
while n < 1000:
if n == 10:
print('休息,休息一下')
continue
else:
print(f'这是数字{n}')
n+=1
#continue是终止这一次的循环,并不会退出本次循环,相当于做事做累了,休息一下继续做
还有一个终止循环的方法便是从while循环的条件入手
flag = True
n = 1
while flag:
if n < 10
print(f'这是数字{n}')
else:
print('不想数了,出去玩会')
flag = False
n+=1
#这种便是通过while循环的条件来退出while循环
for循环
for循环的格式
info = {'name': 'Gredae', 'age': 18}
for item in info:
print(f'{item} : {info[item]}')
#这样可以通过for循环取出字典中的key与value
# name : Gredae
# age : 18
for循环的嵌套
for循环嵌套和while循环嵌套一样都是在循环中再套一个循环
for a in range(1,10):
for b in range(0,10):
print(f'{a}.{b}')
结果:
1.0
1.1
1.2
1.3
...
9.9
for循环的退出
barek
那么便用到了break来退出循环
for n in range(1,1000):
if n < 10:
print(f'这是数字{n}')
else:
print('大于9的我不会数了,我不数了!!罢工。。。')
break
#当n大于等于10的时候,便会退出这个循环,相当于这件事不做了
continue
如果说,我只是现在不做这事,等一会再做这个事的话,那就用到continue了
for n in range(1,1000):
if n == 10:
print('我需要休息下,等下接着数')
continue
else:
print(f'这是数字{n}')
#continue是终止这一次的循环,并不会退出本次循环,相当于做事做累了,休息一下继续做