数据类型,bool,tuple,set,用户交互,格式化输出,运算符

基本数据类型之布尔值bool

1.用来判断事物的对错 是否可行 只要用于流程控制中
2.只有两种状态(首字母大写,在python中)
True 对的 真的 可行的
False 错的 假的 不可行的
3.python中所有数据都自带布尔值
布尔值为False的数据有:0 None '' [] {}
布尔值为True的数据有:除了上面的都是True
4.存储布尔值的变量名一般推荐使用is开头
is_delete = False
is_alive = True
"""
很多程序中提供的注销账户的功能 其实底层并没有删除数据 而是修改了数据的状态
id username password   phone   is_delete
1 jason 123   110     1
2 kevin 321   120 0
"""

基本数据类型之元组tuple

元组内数据不可更改指的是:索引跟绑定值之间的关系不能改

1.也称为'不可变'的列表
元组内索引绑定的内存地址不能修改
2.小括号括起来 内部存放多个数据值 数据值与数据值之间逗号隔开 数据值可以是任何数据类型
3.代码实现
t1 = (11, 22, 'jason')
4.元组与列表的对比
列表(list)
# l1 = [11, 22, 33]
   # print(l1[0]) # 获取索引0对应的数据值
结果为11
   # l1[0] = 666 #可以重新赋值
   # print(l1) # [666, 22, 33] #结果改变
结果为666


  元组 
 # t1 = (11, 22, 33)
   # print(t1[0])
   # t1[0] = 999 # 不可更改
   # print(t1) #会报错

练习题
    t1 = (11, 22, [111, 222])
    t1[2][1] = 666
   print(t1)
   """
  A.直接报错
  B.(11, 22, [111, 666])
  C.不知道 超出了我的认知
  """
结果是:B

 

 



5.元组内如果只有一个数据值,不会识别为元组,要加上括号才行
t1 = (1)
   t2 = (11.11)
   t3 = ('jason')
   print(type(t1), type(t2), type(t3))  #没有被识别为元组 <class 'int'> <class 'float'> <class 'str'>

   t1 = (1,)
   t2 = (11.11,)
   t3 = ('jason',)
   print(type(t1), type(t2), type(t3))  识别为元组# <class 'tuple'> <class 'tuple'> <class 'tuple'>
   """
  建议:以后在使用可以存放多个数据值的数据类型时 如果里面暂时只有一个数据值 那么也建议你加上逗号
  """

基本数据类型之集合set

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

与用户交互

"""
以前银行取钱只能拿着存折去柜台跟小姐姐交流才可以
你想干嘛 我想取钱
请输入密码 滴滴滴密码
想取多少钱 我想取一个亿
...
随后程序代替了小姐姐跟我们交互
ATM机器
"""
1.获取用户输入
input
# 获取用户输入
   username = input('请输入您的用户名>>>:')

 

 


   """
  1.先执行input获取用户输入
  2.将输入的数据绑定给变量名username
  3.以后在程序中就可以使用变量名反复调用用户数据
  """

强调:input获取到的数据都会统一处理成字符串类型
2.输出内部信息
print
1.括号内既可以放数据值也可以放变量名 并且支持多个 逗号隔开即可
2.print自带换行符(每个print就是重新一行)
换行符:\r\n \n(斜杠与字母组合到一起可能会产生特殊的含义)

 

 


3.print也可以切换结束符
  print(数据,end='默认是\n')

扩展:python2与python3中两个关键字的区别
python2中
  input方法需要用户自己提前指定数据类型 写什么类型就是什么类型
raw_input方法与python3中input一致 输入的统一处理成字符串
python2中
  print方法有两种使用方式
      print 数据值
          print(数据值)
 

格式化输出

提前定义好一些内容 将来需要使用的时候可以局部修改

          eg:奖状、录取通知书、合同

代码实现

       在现实生活中大部分情况下使用下划线提示别人填写内容

       但是在程序中需要使用占位符:%s %d

info = '%s同志你好'                     '''单个占位符'''

print(info % 'Jason')                       # Jason同志你好

 

print('%s同志你好' % 'Tony')          # Tony同志你好      没有赋变量名

 

'''多个占位符'''

desc = '姓名:%s 年龄:%s 爱好:%s'

print(desc % ('jason', 18, 'read'))       #用元组括起来

 

print('姓名:%s 年龄:%s 爱好:%s' % ('tony', 28, 'rap'))        没有赋变量名

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

print('my name is %s my age is %s' % ('jason',)) # 少了不行

print('my name is %s my age is %s' % ('jason', 18, 'read')) # 多了不行

 

'''不同占位符的区别'''

demo1 = '%s您好 您本月的话费是%s 余额是%s'                # %s常见数据类型都支持

print(demo1 % ('jason', 100, 10000000000000))

 

demo2 = '%d您好 您本月的话费是%d 余额是%d'                  # %d只支持数字类型

print(demo2 % ('tony', 1000000000, -100000))      

 

 会报错

print('%08d'% 123)           # 00000123

产生一个固定位数的数字,位数不够,用0填充,如果位数超了,只会执行%d的功能

 print('%08d'% 1234324324)                    # 1234324324

 


基本运算符

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 **1

 

2.比较运算符

< >       <= >=      ==(等于号) !=(不等于)

常用赋值符

1.链式赋值

name = 'jason'

name1 = name

name2 = name

链式赋值

name = name1 = name2 = 'jason'

 

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 100

3.解压赋值

name_list = ['jason', '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) # jason

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) # jason

print(b) # ['kevin', 'tony']

print(c) # oscar

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

a, *_, c = name_list

逻辑运算符

'''主要配合条件一起使用'''

and              与         and连接的多个条件必须全部成立 结果才成立

    eg: 你去相亲提要求:身高必须是160以上、长相必须好看、家里必须有钱、性格必须温柔 身高 and 长相 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连接的多个条件只要有一个成立 结果就成立

eg: 你去相亲提要求:要么家里有钱 或者家里有势 或者长得完美 或者对你死心塌地

有钱 or 有势 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     取反   类似于说反话

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

eg: 先乘除有加减 但是可以使用括号来改变优先级

(3>4 and 4>3) or ((1==3 and 'x' == 'x') or 3 >3) """

成员运算符

判断个体在不在群体内

name_list = ['jason', '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': 'jason', 'pwd': 123 }

print('jason' in d1)                # False 字典成员运算只有键参与

print('username' in d1)             # True 'username' 'pwd'

身份运算符

""" 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 = 11

i2 = 11 print(i1 is i2)

s1 = 'jason jason jason'

s2 = 'jason jason jason'

print(s1 is s2) 不同的环境下可能优化的程度不一样

""" 了解

值相同 内存地址可能不同

内存地址相同 值肯定相同 """

 

 

作业

Name = input('输入你的名字:')
Age = input('输入你的年龄:')
Sex = input('输入你的性别:')
Job = input('输入你的工作:')

print('------info of Jason------')
print('Name:%s' % Name)
print('Age:%s' % Age)
print('Sex:%s' % Sex)
print('Job:%s' % Job)
print('-----------end-----------')
 
posted @   DYuH  阅读(80)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
点击右上角即可分享
微信分享提示