「Python」Day04-今日总结-基本数据类型(bool、tuple、set),与使用者交互,格式化输出,基本运算符

今日内容概要基本数据类型之布尔值bool基本数据类型之元组tuple基本数据类型之集合set与使用者交互格式化输出基本运算符常用赋值符逻辑运算符成员运算符身份运算符练习题

今日内容概要

python基本数据类型与使用者交互格式化输出基本运算符多种赋值方式逻辑运算符成员运算符身份运算符

基本数据类型之布尔值bool

1.用来判断事物的对错 是否可行 只要用于流程控制中2.只有两种状态True 对的 真的 可行的  False 错的 假的 不可行的3.python中所有数据都自带布尔值布尔值为False的数据有:0 None '' [] {}布尔值为True的数据有:除了上面的都是True4.存储布尔值的变数名一般推荐使用is开头is_delete = False is_alive = True"""很多程式中提供的注销帐户的功能 其实底层并没有删除数据 而是修改了数据的状态idusernamepassword    phone    is_delete1jimmy123   110       12kevin321   120  0"""

EX:
[media/Pasted image 20230924132454.png]

[media/Pasted image 20230924132503.png]

基本数据类型之元组tuple

1.也称为『不可变』的列表元组内索引绑定的记忆体位址不能修改2.小括弧括起来 内部存放多个数据值 数据值与数据值之间逗号隔开 数据值可以是任何数据类型3.代码实现t1 = (11, 22, 'jimmy')4.元组与列表的对比# 列表l1 = [11, 22, 33]    print(l1[0]) # 获取索引0对应的数据值    l1[0] = 666    print(l1)  # [666, 22, 33]# 元组t1 = (11, 22, 33)    print(t1[0])    t1[0] = 999    print(t1) # 报错# 练习题 元组混列表t1 = (11, 22, [111, 222])    t1[2][1] = 666    print(t1) # (11, 22, [111, 666])    """    A.直接报错    B.(11, 22, [111, 666])    C.不知道 超出了我的认知    """5.元组内如果只有一个数据值t1 = (1)    t2 = (11.11)    t3 = ('Jimmy')    print(type(t1), type(t2), type(t3))  # <class 'int'> <class 'float'> <class 'str'>    t1 = (1,)    t2 = (11.11,)    t3 = ('Jimmy',)    print(type(t1), type(t2), type(t3))  # <class 'tuple'> <class 'tuple'> <class 'tuple'>    """    建议:以后在使用可以存放多个数据值的数据类型时 如果里面暂时只有一个数据值 那么也建议你加上逗号    """

EX1:元组与列表的对比

列表:
[media/Pasted image 20230924133144.png]

[media/Pasted image 20230924133151.png]

图解:
[media/Pasted image 20230924134118.png]

元组:
[media/Pasted image 20230924133230.png]

[media/Pasted image 20230924133318.png]

图解:
[media/Pasted image 20230924134132.png]
EX2:练习题 元组混列表
[media/Pasted image 20230924134356.png]

[media/Pasted image 20230924134515.png]

图解:

[media/Pasted image 20230924134920.png]

EX3:元组内如果只有一个数据值

[media/Pasted image 20230924140052.png]

基本数据类型之集合set

1.集合只能用于去重和关係运算后面再讲 暂且忽略2.集合内数据只能是不可变类型后面再讲 暂且忽略3.大括弧括起来 内部存放多个数据值 数据值与数据值之间逗号隔开 数据值不是k:v键值对4.代码实现s1 = {1, 2, 3, 4, 5, 6}5.定义空集合与空字典{} 预设是字典 set() 定义空集合

EX1:定义空集合

[media/Pasted image 20230924135732.png]

与使用者交互

1.获取使用者输入input# 获取使用者输入    username = input('请输入您的使用者名>>>:')    """    1.先执行input获取用户输入    2.将输入的数据绑定给变数名username    3.以后在程式中就可以使用变数名反覆调用用户数据    """强调:input获取到的数据都会统一处理成字串类型2.输出内部资讯print 1.括弧内既可以放数据值也可以放变数名 并且支援多个 逗号隔开即可 2.print自带换行符换行符:\r\n \n(斜杠与字母组合到一起可能会产生特殊的含义)3.print也可以切换结束符    print(数据,end='预设是\n')扩展:python2与python3中两个关键字的区别 python2中    input方法需要使用者自己提前指定数据类型 写什么类型就是什么类型   raw_input方法与python3中input一致 输入的统一处理成字串python2中    print方法有两种使用方式print 数据值print(资料值)

EX1:1.获取使用者输入

[media/Pasted image 20230924145933.png]

[media/Pasted image 20230924145941.png]

EX2:input获取到的数据都会统一处理成字串类型

[media/Pasted image 20230924150312.png]

[media/Pasted image 20230924150214.png]

[media/Pasted image 20230924150232.png]

[media/Pasted image 20230924150303.png]

EX3:输出内部资讯
[media/Pasted image 20230924150850.png]

[media/Pasted image 20230924150902.png]

EX4:2.print自带换行符

[media/Pasted image 20230924151229.png]

[media/Pasted image 20230924151236.png]

EX5:3.print也可以切换结束符
[media/Pasted image 20230924151416.png]

[media/Pasted image 20230924151424.png]

EX6:python2与python3中两个关键字的区别

python2

input方法需要使用者自己提前指定数据类型 写什么类型就是什么类型raw_input方法与python3中input一致 输入的统一处理成字串

[media/Pasted image 20230924152959.png]

[media/Pasted image 20230924153037.png]

python2

print方法有两种使用方式print 数据值print(资料值)

[media/Pasted image 20230924153154.png]

格式化输出

提前定义好一些内容 将来需要使用的时候可以局部修改代码实现在现实生活中大部分情况下使用下划线提示别人填写内容 但是在程式中需要使用佔位元:%s %dinfo = '%s同学你好''''单个佔位符'''# print(info % 'Jimmy') # Jimmy同学你好# print('%s同学你好' % 'Tony') # Tony同学你好# print(info % ('Jimmy',))# print('%s同学你好' % ('Tony',))'''多个佔位符'''# desc = '姓名:%s 年龄:%s 爱好:%s'# print(desc % ('Jimmy', 18, 'read'))# print('姓名:%s 年龄:%s 爱好:%s' % ('tony', 28, 'rap'))'''注意事项:有几个佔位符就需要几个数据值'''# print('my name is %s my age is %s' % ('Jimmy',)) # 少了不行# print('my name is %s my age is %s' % ('Jimmy', 18, 'read')) # 多了不行'''不同佔位符的区别'''# demo1 = '%s您好 您本月的话费是%s 余额是%s' # %s常见数据类型都支援# print(demo1 % ('Jimmy', 100, 10000000000000))# demo2 = '%d您好 您本月的话费是%d 余额是%d' # %d只支援数字类型# print(demo2 % ('tony', 1000000000, -100000))print('%08d'% 123)  # 00000123print('%08d'% 1234324324)  # 1234324324

EX1:单个佔位符
[media/Pasted image 20230924154615.png]

EX2:多个佔位符

[media/Pasted image 20230924154626.png]

EX3:注意事项:有几个佔位符就需要几个数据值

[media/Pasted image 20230924154812.png]

EX4:不同佔位符的区别

%s常见数据类型都支援

[media/Pasted image 20230924154936.png]

%d只支援数字类型

[media/Pasted image 20230924154951.png]

[media/Pasted image 20230924155002.png]

EX5:%d补位功能
[media/Pasted image 20230924155155.png]

基本运算符

以下假设变数: a=10,b=20:

运算符描述实例+加 - 两个物件相加a + b 输出结果 30-减 - 得到负数或是一个数减去另一个数a - b 输出结果 -10*乘 - 两个数相乘或是返回一个被重複若干次的字串a * b 输出结果 200/除 - x除以yb / a 输出结果 2%取余 - 返回除法的余数b % a 输出结果 0**次方 - 返回x的y次方a**b 为10的20次方, 输出结果 100000000000000000000//取整除 - 传回商的整数部分(向下取整)>>>9//2 4, >>>-9//2 -5
1.数学运算符    + - * / % // **    简化写法    n = 10    n += 1  # n = n + 1    n -= 1  # n = n - 1    n *= 1  # n = n * 1    n /= 1  # n = n / 1    n %= 1  # n = n % 1    n //= 1  # n = n // 1    n **= 1  # n = n ** 12.比较运算符< > <= >= ==(等于号) !=(不等于)

常用赋值符

1.链式赋值# name = 'jimmy'    # name1 = name    # name2 = name    # 链式赋值    name = name1 = name2 = 'jimmy'2.交叉赋值m = 100    n = 999    '''让m和n互相转换绑定的值'''    """奇葩式写法"""    # m = n    # n = m    # print(m, n)  # 999 999    '''方式1:採用中间变数'''    # temp = m    # m = n    # n = temp    # print(m, n)  # 999 100    '''方式2:交叉赋值语法'''    m, n = n, m    print(m, n)  # 999 1003.解压赋值 name_list = ['jimmy', 'kevin', 'tony', 'oscar']    '''low的写法'''    # name1 = name_list[0]    # name2 = name_list[1]    # name3 = name_list[2]    # name4 = name_list[3]    '''解压赋值语法'''    # name1, name2, name3, name4 = name_list    '''解压赋值在使用的时候 正常情况下需要保证左边的变数名与右边的数据值个数一致'''    # a, b = name_list  # 变数名少了不行    # a, b, c, d, e = name_list  # 变数名多了也不行    '''当需要解压的数据个数特别多 并且我们只需要使用其中的几个 那么可以打破上述的规则'''    # a, *b = name_list  # *会自动接收多余的数据 组织成列表赋值给后面的变数名    # print(a)  # jimmy    # print(b)  # ['kevin', 'tony', 'oscar']    # a, c, *b = name_list    # print(a)    # print(c)    # print(b)  # ['tony', 'oscar']    # a, *b, c = name_list    # print(a)  # jimmy    # print(b)  # ['kevin', 'tony']    # print(c)  # oscar    '''当数据值不準备使用的时候 可以使用下划线作为变数名绑定'''    a, *_, c = name_list

EX1:1.链式赋值
[media/Pasted image 20230924161001.png]

EX2:2.交叉赋值

奇葩式写法:
[media/Pasted image 20230924161159.png]

图解:
[media/Pasted image 20230924161420.png]

方式1:採用中间变数:

[media/Pasted image 20230924161617.png]

图解:

[media/Pasted image 20230924161808.png]

方式2:交叉赋值语法:

[media/Pasted image 20230924161858.png]

EX3:3.解压赋值

[media/Pasted image 20230924162110.png]

解压赋值在使用的时候 正常情况下需要保证左边的变数名与右边的数据值个数一致变数名少了不行变数名多了也不行

[media/Pasted image 20230924162629.png]

[media/Pasted image 20230924162744.png]

当需要解压的数据个数特别多 并且我们只需要使用其中的几个 那么可以打破上述的规则*会自动接收多余的数据 组织成列表赋值给后面的变数名

[media/Pasted image 20230924162813.png]

当数据值不準备使用的时候 可以使用下划线作为变数名绑定

[media/Pasted image 20230924163036.png]

逻辑运算符

'''主要配合条件一起使用'''and与and连接的多个条件必须全部成立 结果才成立1 > 2 and 4 < 8 and 10 < 1 and 1 == 2  如果条件中全部由and组成那么判断起来非常的简单 只要发现一个不成立 结果就不成立          print(1 < 10 and 666)  # 666  成立    print(1 < 10 and 2 < 8)  # True  成立    print(111 and 222)  # 222  成立        如果需要你準确的说出具体的结果值 那么需要按照下列方式    如果and左边的条件是成立的 那么就完全取决于右边的条件    右边如果直接是数据值 那么结果就是该数据值 如果是含有表达式 则为布尔值  or或or连接的多个条件只要有一个成立 结果就成立   1 > 2 or 4 < 8 or 10 < 1 or 1 == 2   如果条件中全部由or组成那么判断起来非常的简单 只要发现一个成立 结果就成立   # print(1 < 10 or 666)  # True    # print(666 or 1 > 10)  # 666    print(0 or False)  # False    print(0 or 111)  # 111    规律用and    not非取反 类似于说反话print(not 1)  # False  print(not 0)  # True"""三者混合使用的时候有优先顺序之分 但是我们不需要记忆优先顺序 应该通过代码的形式提前规定好优先顺序eg: 先乘除后加减 但是可以使用括弧来改变优先顺序(3>4 and 4>3) or ((1==3 and 'x' == 'x') or 3 >3)"""

EX1:and

[media/Pasted image 20230924213932.png]

[media/Pasted image 20230924214104.png]

[media/Pasted image 20230924214203.png]

[media/Pasted image 20230924214240.png]

EX2:or

[media/Pasted image 20230924214645.png]

EX3:not

[media/Pasted image 20230924214814.png]

三者混合使用的时候有优先顺序之分 但是我们不需要记忆优先顺序 应该通过代码的形式提前规定好优先顺序

[media/Pasted image 20230924215046.png]

成员运算符

判断个体在不在群体内# name_list = ['jimmy', 'kevin', 'oscar', 'jerry']# print('tony' in name_list)  # False# print('tony' not in name_list)  # True# print('j' in name_list)  # False 列表最小单位是数据值 不能再细分# s1 = 'hello world'# print('d' in s1)  # 字串最小单位是单个单个的字元d1 = {      'username': 'jimmy',      'pwd': 123}print('jimmy' in d1)  # False 字典成员运算只有键参与print('username' in d1)  # True      'username' 'pwd'

EX1:成员运算符

列表
[media/Pasted image 20230924215420.png]

字串
[media/Pasted image 20230924215537.png]

字典
[media/Pasted image 20230924215657.png]

身份运算符

"""id()  返回一串数字 该数字可以看成是记忆体位址"""is   判断记忆体位址是否相同==     判断数据值是否相同# l1 = [11, 22, 33, 44, 55, 66, 77, 88]# l2 = [11, 22, 33, 44, 55, 66, 77, 88]# print(l1 == l2)  # True# print(id(l1))# print(id(l2))# print(l1 is l2)  # False# 小整数池i1 = 11i2 = 11print(i1 is i2)s1 = 'jason jason jason's2 = 'jason jason jason'print(s1 is s2)不同的环境下可能优化的程度不一样 """了解    值相同 内存地址可能不同    内存地址相同 值肯定相同"""

EX1:身份运算符

is   判断记忆体位址是否相同==     判断数据值是否相同

[media/Pasted image 20230924220017.png]

EX2:不同的环境下可能优化的程度不一样

pycharm有额外做优化和解释器出来结果不一样

[media/Pasted image 20230924220655.png]

[media/Pasted image 20230924220726.png]

练习题

1.获取使用者输入并列印成下列格式 ------------ info of Jimmy -----------    Name : Jimmy    Age  : 18    Sex  : male    Job  : Teacher     ---------------- end ----------------- # 1.先制定一个列印的範本    info_demo = """        ------------ info of %s -------------        Name : %s        Age  : %s        Job  : %s         ---------------- end -----------------    """    # 2.获取用户输入    username = input('username>>>:')    age = input('age>>>:')    job = input('job>>>:')    # 3.格式化输出    print(info_demo % (username, username, age, job))    2.下列变数名v绑定的结果v1 = 1 or 3  # 1  v2 = 1 and 3  # 3  v3 = 0 and 2 and 1  # 0  v4 = 0 and 2 or 1  # 1 没写执行顺序,是not->and->or  v5 = 0 and 2 or 1 or 4  # 1 没写执行顺序,是not->and->or  v6 = 0 or False and 1  # False

EX1:1.获取使用者输入并列印成下列格式

[media/Pasted image 20230924221852.png]

EX2:2.下列变数名v绑定的结果

[media/Pasted image 20230924222521.png]

技术Blog

https://blog.goldfishbrain-fighting.com/2023/python-self-learning-day04/


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章