基石为勤能补拙的迷宫之旅——第三天(Python基本数据类型,与用户交互(输出输入),运算符)

一、 基本数据类型

为何数据要区分类型?

    数据类型值的是变量值的类型,变量值之所区分类型,是因为变量值是用来记录事物状态的,而事物的状态有不同的种类,对应着,也必须使用不同类型的值去记录它们。

(一)、数字类型

1、整型int

    作用:记录年龄、等级、数量等
    定义:age = 18
    使用:数学运算 print(10 / 3) 与比较运算print(10 > 3)

2、浮点型float(有小数点)

    作用:记录薪资、身高、体重等
    定义:salary = 3.1
    使用:数学运算print(3.1 + 2)与比较运算print(3.1 > 2)
   &ensp浮点型和整数型可混用

(二)、字符串str

    作用:记录描述性质的状态
    定义:在单引号/双引号/三引号中包含一系列字符,例如name = 'mumoon'
    使用:msg=' my name is " mumoon " ' ,在字符串中要使用多个引号,引号类型要不同。

字符串的加法

    +(加号):拼接字符串
例如

x='hello'
y='world'
print(x + y)  # 结果是helloworld

    而print(x + 10) 报错,因为字符串只能与字符串相加。我们一般不推荐用+(加号)拼接字符串,浪费内存空间。

字符串的乘法

    *(乘号)循环输出数遍
例如

print('mumoon'*3) #  结果是mumoonmumoonmumoon

(三)、 列表类型list

    作用:按照位置记录多个同种属性的值(索引对应值,索引从0开始,代表的就是位置),并且可以取出指定位置的某一个值
在这里插入图片描述
    定义:在[](中括号)内用逗号分隔开多个任意类型的值
例如:

L1=[100,3.2,'aaa',['a','b',['d','e']]]

    使用:

print(L1[0]) #  结果是100
print(L1[3][2][1]) #  结果是e

练习:取出第一个学生的第一个爱好

students_info=[['mumoon',18,['Reading',]],['Hysen',25,['Swimming','Cooking']]]
print(students_info[0][2][0])

(四)、字典类型dict

    作用:记录多个不同属性的值
    定义:在{}(大括号)内用逗号分开个多个元素,每一个元素都由key : value组成,value就是我们存放的值,可以是任意类型,一个key唯一对应一个value,key应该对value有描述性的功能,所以key通常是str类型。

dic={'name':'mumoon','age':18,'gender':'male'}

    使用:

print(dic['name']) #  结果是mumoon
print(dic['age']) #  结果18

练习:取出公司名

info={
    'name' : 'mumoon',
    'hobbies' : ['play' , 'sleep'],
    'company_info' : {
        'name' : 'Hi、Ason',
        'type' : 'education',
        'emp_num' : 40,
    }
}
print(info['company_info']['name']) #  结果是Hi、Ason

选择数据类型的方法(列表Or字典)

    全班同学的信息,每个同学的信息都是相同属性的值,但是信息里面包含的例如姓名,年龄是不同属性的值,所以用下面这种方式定义。

 info=[
     {'name':'Hysen','age':18,'sex':'male','height':1.81,'weight':70},
     第二个学生的信息,
     第三个学生的信息,
 ]

(五)、布尔类型bool:True、False

    作用:用于判断
    定义:

x=True
y=False
print(10 > 11) #  结果是False
print(10 == 10) #  结果是True

    强调:所有的数值都自带布尔值,其中0、None、空布尔值为False,其余都为True
例如:

if []:
    print('ok') #  True打印ok
else:
    print('不 ok') #  False打印不ok,因为[]是空,空的布尔值是False,所以最后结果是不ok

二、与用户交互(输出输入)

1、接收用户输入

name = input('请输入你的用户名: ') #  name='mumoon'
print(name)

2、格式化输出

    如何动态地显示这么一句话:My name is xxx ,my age is xxx,姓名和年龄会根据用户输入的不同而显示不同。
    首先我们要提示用户输入姓名和年龄:

name = input('Your name: ')
age = input('Your age: ')

    方法一:我们可以用字符串拼接的方法

print('my name is '+name+' my age is '+age)

    我们之前说过不提倡这种方式,因为会浪费内存,所以我们用下面这种方法。

print('my name is %s my age is %s' %(name,age))

    注意%d只能接收数字,%s可以接受所有类型

扩展

    在python3中只有一个input:input会将用户输入的任何内容都存成字符串类型

x = input('请输入: ') #  输入[1,2,3]
print(type(x)) #  <class 'str'>

    在python2中有两种接收用户输入的机制:

  • raw_input:等同于python3的input
  • input:要求输入者必须输入的一个明确的数据类型,输入什么类型就存成什么类型

    程序的目的是为了便利用户,这也是Python3舍弃Python2中的input的原因。

三、运算符

1、算数运算符

    假设变量x=3,y=7

运算符 描述 实例
+ 加 - 两个对象相加 x + y 输出结果 10
- 减 - 得到负数或是一个数减去另一个数 x - y 输出结果 -4
* 乘 - 两个数相乘或是返回一个被重复若干次的字符串 x * y 输出结果21
/ 除 - y 除以 x y/ x 输出结果 2.3
% 取余 - 返回除法的余数 y % x 输出结果 1
** 幂 - 返回y的x次幂 y ** x 输出结果343
// 取整 - 向下取接近除数的整数 y // x 输出结果 2

2、比较运算符

    所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。
    假设变量x=3,y=7

运算符 描述 实例
== 等于 - 比较对象是否相等 (x == y) 返回 False
!= 不等于 - 比较两个对象是否不相等 (x != y) 返回 True
> 大于 - 返回x是否大于y (x > y) 返回 False
< 小于 - 返回x是否小于y (x < y) 返回 True
>= 大于等于 - 返回x是否大于等于y (x > =y) 返回 False
<= 小于等于 - 返回x是否小于等于y (x < =y) 返回 True

字符串比较

例子

x='abcdef'
y='abcz'
print(x > y) #  结果是False,ASCII中表示z的数值比表示d的大

    字符串不能和数字比较,下面代码会报错

L1=[2,'abc',3]
L2=[2,3]
print(L2 >L1)

3、赋值运算符

假设变量x=3,y=7

运算符 描述 实例
= 简单的赋值运算符 z= x + y 将 x + y 的运算结果赋值为 z
+ = 加法赋值运算符 z += x 等效于 z = z + x
-= 减法赋值运算符 z -= x 等效于 z = z - x
* = 乘法赋值运算符 z *= x 等效于 z = z * x
/= 除法赋值运算符 z /= x 等效于 z = z / x
% = 取余赋值运算符 z %= x 等效于 z = z % x
**= 幂赋值运算符 z **= x 等效于 z = z ** x
//= 取整赋值运算符 z //= x 等效于 z = z // x

3.1 交叉赋值

x=11
y=22
temp=x
x=y
y=temp

    上述代码可以合并为下面这样

x=11
y=22
x,y=y,x

3.2 链式赋值

x=10
y=x
z=y

    上述代码可以合并为下面这样

x=y=z=10

    x,y,z的内存地址一样

3.3 解压赋值

L=['a','b','c','d','e']
x=L[0] #  a
y=L[1] #  b
z=L[2] #  c
m=L[3] #  d
n=L[4] #  e
print(x,y,z,m,n) #结果是  a b c d e

    用下面这种方法同样可以取得相同的结果

x,y,z,m,n=L
print(x,y,z,m,n)

    等号左边的变量名必须与右面所包含的值一一对应,否则会报错。

取头尾的方法

x,y,*_,z=L
print(x,y,_,z) #结果是  a b ['c', 'd'] e

4、逻辑运算符

假设变量x=3,y=7

运算符 逻辑表达式 描述 实例
and x and y 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值 (x and y) 返回 7
or x or y 布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值 (x or y) 返回 3
not not x 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 not(x and y) 返回 False

    and:逻辑与,用来连接左右两个条件,在左右两个条件同时为True的情况下,最终结果才为True
    or:逻辑或,用来连接左右两个条件,左右两个条件但凡有一个为True,最终结果就为True
    not:取反

print(not 10 > 3) #  结果是False

5、身份运算符

    ==:判断的是值是否相等
    is:判断的是id是否相等

拾遗

平台:操作系统+ 硬件= 应用软件的运算平台
注释
#单行注释
“”"
多行注释
多行注释
多行注释
“”"
重要代码进行注释可增强可读性,但不是注释越多越好,可写在代码前,也可写在代码后。

发布了27 篇原创文章 · 获赞 16 · 访问量 4274
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章