ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python 基础02 基本数据类型

2022-06-29 01:33:26  阅读:222  来源: 互联网

标签:02 10 name python 数据类型 运算符 11 print 赋值


今日学习

1.基本数据类型

2.与用户交互

3.格式化输出

4.诸多运算符

5.流程控制简介

基本数据类型

基本数据类型 作用 特点
列表(list) 能够存储多个数据 并且能够方便的获取整体或者局部 数据值可以是任意数据类型
字典(dict) 能够存储多个数据 并且能够方便的获取整体或者局部 并且数据key vlaue形式存在 字典取值:字典无法使用索引取值(因为字典是无序的) 可以使用按K取值。并且key不存在是会报错
布尔(bool) 用来表示事物是否可行 是否正确 是否合理 is 开头
使用频率最高的
程序中所有的数据类型都可以转成布尔值
布尔值为False的数据有 0 None 空字符串 空列表 空字典 ...
除上述之外所有的数据对于的布尔值都是True
元组(tuple) 能够存储多个数据 并且能够方便的获取整体或者局部与列表的区别在于元组内数据值 不能"直接修改" 而列表可以
所以元组有一个小外号>>>:不可变的列表
一般用于存储一些只能看不能改的数据

1.数据类型之列表(list)

2.基本使用
	l1 = [1, 2, 3, 4, 5]
3.语言描述
	中括号括起来 内存可以存放多个数据值 数据值与数据值之间逗号隔开
	数据值可以是任意数据类型
    	l2 = [11, 11.11, 'jason', [11, 22, 33]]
  • 列表练习
#列表
#练习
#取出5555和88888
l2 = [11, 22, [111, 222, 333, [1111, 3333, 5555], 88888]]

print(l2[2][3][2])
5555

print(l2[2][4])
88888

2.数据类型之字典(dict)

基本使用
	info_dict = {'姓名': 'jason', '年龄': 18, '爱好': 'read'}
    按K取值
	 info_dict = {'姓名': 'jason', '年龄': 18, '爱好': 'read'}
    '''字典取值:字典无法使用索引取值(因为字典是无序的) 可以使用按K取值'''
    print(info_dict['姓名'])  # jason
    print(info_dict['年龄'])  # 18
    print(info_dict['家产'])  # K不存在直接报
  • 字典练习
#取出打印age字符
例:
data = {
    'name': 'jason',
    'others': [
        111,
        222,
        {
            'a1': '嘿嘿',
            'a2': '哈哈',
            'a3': [
                123,
                {
                    'name': 'jason1',
                    'age': 18
                }]}]}
思路
#print(data)
#print(data['others'])
#print(data['others'][2])

运行结果
#{'name': 'jason', 'others': [111, 222, {'a1': '嘿嘿', 'a2': '哈哈', 'a3': [123, {'name': 'jason1', 'age': 18}]}]}
#[111, 222, {'a1': '嘿嘿', 'a2': '哈哈', 'a3': [123, {'name': 'jason1', 'age': 18}]}]
#{'a1': '嘿嘿', 'a2': '哈哈', 'a3': [123, {'name': 'jason1', 'age': 18}]}


#最终打印命令
print(data['others'][2]['a3'][1]['age'])

18

3.基本类型之布尔(bool)

基本使用
	is_right = True  # 真 可以 正确
	is_delete = False  # 假 不可以 错误

4.基本数据类型之元组(tuple)

1.基本使用
	t1 = (111, 222, 333)
2.与列表对比	
	 l1 = [11, 22, 33]
    t1 = (11, 22, 33)
    # print(l1[0])
    # print(t1[0])
    # l1[0] = 'jason'  # 将列表索引0重新绑定数据值jason
    # print(l1)  # ['jason', 22, 33]
    t1[0] = 'tony'  # 将元组索引0重新绑定数据值tony  直接报错!!!
    print(t1)

用户交互

输入 input()
输出 print()

练习

username=input("请输入您的用户名:")
passwd=input("请输入您的密码:")
# 默认print功能有一个end参数,该参数的默认值为"\n"(代表换行),可以将end参数的值改成任意其它字符
print("aaaa",end='')
print("bbbb",end='&')
print("cccc",end='@')
#整体输出结果为:aaaabbbb&cccc@

格式化输出

格式化输出用到了占位符

%s 占位符 可以接受任意类型的值
%d 占位符 只能接受数字
print('亲爱的%s你好!你的%s月的花费是%d,余额是%d' %('tony',12,103,11))
亲爱的tony你好!你的12月的花费是103,余额是11

运算符

算数运算符

算数运算符 描述 示例
+ 5+3=8
- 5-3=2
* 5*3=15
/ 5*3=5/3
// 整除,只保留整数部分 5//3=1
% 取余 相除只返回余数 5%3=2
** 幂 一个数的n次方 5**3=125

例子

x = 10
#新手           #老手
x = x + 100  # x += 100 
x = x - 10   # x -= 10
x = x * 10   # x *= 10
x = x / 10   # x /= 10
ps:学习阶段还是能多敲就多敲!!!

比较运算符

比较运算符 描述 示例 True/fasle
== 等于; 两个对象相等返回true,不相等返回false 1==1 true
!= 不等于; 两个对象不相等返回true,相等返回false 1!=2 true
> 大于 2>1 true
>= 大于等于 2>=1 false
< 小于 1<2 true
<= 小于等于 1<=2 false

赋值运算符

python语法中除了有=号这种简单的赋值运算外,还支持增量赋值、链式赋值、交叉赋值、解压赋值,这些赋值运算符存在的意义都是为了让我们的代码看起来更加精简。我们以x=9,y=2为例先来介绍一下增量赋值

增量赋值

赋值运算符 描述 示例
= 简单赋值运算 x=10
+= 加法赋值运算 x+=1等于x=x+1
-= 减法赋值运算 x-=1等于x=x-1
*= 乘法赋值运算 x * =1等于x=x * 1
/ 除法赋值运算 x/=1等于x=x/1
//= 取整除赋值运算 同上
%= 取余赋值运算 同上
**= 幂赋值运算 同上

链式赋值

如果我们把同一个值赋值给多个变量名,可以这么做

z=10
y=z
x=y
x,y,z
(10,10,10)

#链式赋值指的是可以用一行代码搞定这件事
x=y=z=10
x,y,z
(10,10,10)

交叉赋值

我们定义两个变量m与n

m=10
n=20
輸出
m,n
(20,10)

如果想将m和n的值交换

t=m
m=n
n=t
輸出
mn
(20,10)

例2

m = 999
n = 100
# 让m绑定n绑定的数据值 让n帮忙m绑定的数据值
# m = n
# n = m
# print(m)
# print(n)
'''方式1:利用中间变量'''
# tmp = m
# m = n
# n = tmp
# print(m, n)
'''方式2:交叉赋值'''
m, n = n, m
print(m, n)

解压赋值

解压赋值,等号两边的变量名个数必须与右面包含值的个数相同,否则会报错

我们把列表中的多个值取出来依次赋值给多个变量名

nums=[11,22,33,44,55]
a=nums[0]
b=nums[1]
c=nums[2]
d=nums[3]
a,b,c,d,e
(11,22,33,44,55)
一行搞定
a,b,c,d,e=nums #nums包含多個值,就好比一個压缩包,解压赋值因此得名
a,b,c,d,e
(11,22,33,44,55)

如果只想取头尾的几个值,可以用*—匹配

a,b,*_=nums
a,b
(11,22)

例2

name_list = ['jason', 'tony', 'kevin']
# 用三个不同的名字存储三个不同的人名
# name1 = name_list[0]
# name2 = name_list[1]
# name3 = name_list[2]
'''解压赋值:赋值符号的左边至少有两个及以上的名字 才能称之为解压赋值'''
# name1, name2, name3 = name_list
# 1.上述操作需要保证左边的名字和右边的数据值 个数一致
# a, b = name_list
# a, b, c, d, e = name_list

"""特殊情况 带解压的数据非常的多"""
l1 = [11, 22, 33, 44, 55, 66, 77, 88, 99]
# a, b, *c, d = l1  # *在解压赋值的时候会自动将多余的数据值组织成列表赋值给*号后面的变量名
# print(a)  # 11
# print(b)  # 22
# print(c)  # [33, 44, 55, 66, 77, 88]
# print(d)  # 99
*c, a, b = l1
print(a)
print(b)
print(c)

ps:字符串,字典,元祖,集合类型都支持解压赋值

逻辑运算符

逻辑运算符 描述
and 逻辑与,用于链接两个条件,两个条件同时成立才会返回true
or 逻辑或,用于链接两个条件,两个条件任何一个成立才会返回true
not 取反

连续多个and,可以用多个and链接多个条件,从左到右一次判断,一旦一个条件不成立,就会被判为false

连续多个or,可以用多个or链接多个条件,从左到右一次判断,一旦一个条件成立立,就会被判为false

#1、三者的优先级关系:not>and>or,同一优先级默认从左往右计算。
>>> 3>4 and 4>3 or 1==3 and 'x' == 'x' or 3 >3
False

#2、最好使用括号来区别优先级,其实意义与上面的一样
'''
原理为:
(1) not的优先级最高,就是把紧跟其后的那个条件结果取反,所以not与紧跟其后的条件不可分割

(2) 如果语句中全部是用and连接,或者全部用or连接,那么按照从左到右的顺序依次计算即可

(3) 如果语句中既有and也有or,那么先用括号把and的左右两个条件给括起来,然后再进行运算
'''
>>> (3>4 and 4>3) or (1==3 and 'x' == 'x') or 3 >3
False 

#3、短路运算:逻辑运算的结果一旦可以确定,那么就以当前处计算到的值作为最终结果返回
>>> 10 and 0 or '' and 0 or 'abc' or 'egon' == 'dsb' and 333 or 10 > 4
我们用括号来明确一下优先级
>>> (10 and 0) or ('' and 0) or 'abc' or ('egon' == 'dsb' and 333) or 10 > 4
短路:       0      ''            'abc'                    
            假     假              真

返回:                            'abc'

#4、短路运算面试题:
>>> 1 or 3
1
>>> 1 and 3
3
>>> 0 and 2 and 1
0
>>> 0 and 2 or 1
1
>>> 0 and 2 or 1 or 4
1
>>> 0 or False and 1
False 

成员运算符

成员运算符 描述
in 某一个对象包含于另外一个对象则返回true
not in 某一个对象没有包含另外一个对象则返回true

in

#
'hello' in 'hello world' 
true

#
'age' in {'xxx'yyy','mmx'}
true

#判断的是字典的key
18 in {'name':'lili','age':18}

false

not in

注意:虽然下述两种判断可以达到相同的效果,但我们推荐使用第二种格式,因为not in语义更加明确

#
>>> not 'lili' in ['jack','tom','robin']
True
>>> 'lili' not in ['jack','tom','robin']
True

身份運算符

身份运算符 描述
is is 比较的是id,两个对象的id相同则返回true
is not 在两个对象的id

需要强调的是 "=="双等号比较的是value是否相等,而is比较的是id是否相等

#1. id相同,内存地址必定相同,意味着type和value必定相同
#2. value相同type肯定相同,但id可能不同,如下
>>> x='Info Tony:18'
>>> y='Info Tony:18'
>>> id(x),id(y) # x与y的id不同,但是二者的值相同
(4327422640, 4327422256)

>>> x == y # 等号比较的是value
True
>>> type(x),type(y) # 值相同type肯定相同
(<class 'str'>, <class 'str'>)
>>> x is y # is比较的是id,x与y的值相等但id可以不同
False

标签:02,10,name,python,数据类型,运算符,11,print,赋值
来源: https://www.cnblogs.com/zongliang-ya/p/16421829.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有