首页 > 编程语言 >python学习day04

python学习day04

时间:2022-09-26 21:44:45浏览次数:46  
标签:python t1 数据类型 day04 学习 print 变量名 数据 元组

上周内容回顾

  • PEP8规范

1.井号后跟注释文字时,井号和前面的代码空两格,和后面的注释文字空一格。

2.井号单独起一行后跟注释文字时,和后面的注释文字空一格。

3.列表、字典、元组、集合中逗号后面要空一格。

4.赋值符号=的左右两端都需要一个空格。

5.(),{},[]中的两端不需要空格。


  • python语法注释

写代码过程中要养成注释的习惯,注释有以下三种方式:
	单行注释:
	井号:在注释文字开头加井号,或选中需要注释的文字(或鼠标停留在文字中),按ctrl+?
    
	多行注释:
	1.三个单引号:回车左边的键连按三下,在中间加注释。
'''
多行注释
'''
	2.三个双引号:回车左边的键+shift连按三下,在中间加注释。
"""
多行注释
"""
  • 变量与常量

1.变量:生活中经常变化的量,eg:温度,薪资等、

2.底层原理:age = 18
	2.1从左到右依次为:变量名、赋值符号、数据值。
	2.2先看赋值符号右侧,再看赋值符号左侧。
	2.3赋值符号右侧也可以是变量名,如果是变量名需先找到该变量名对应的数据值。
	2.4一个变量名只能对应一个数据值,一个数据值可以对应多个变量名。

3.变量名的命名规范:
	3.1变量名可以使用汉字、拼音做变量名,但不建议;
	3.2变量名可以用数字、字母、下划线;
	3.3数字不能作为变量名开头;
	3.4变量名要尽量见名知意;
	3.5变量名不能和关键字重复。
    
4.变量名命名风格:
	4.1下划线式:python推荐使用
	user_name
    
	4.2驼峰体式:JS推荐使用
	大驼峰:UserFromList
	小驼峰:userFromList
    
5.常量:生活中不经常变化的量,eg:重力加速度、坐标、圆周率。
	python中如果要表示常量,需要用全大写。
  • python基本数据类型

1.整形(int):
	eg:1, 2, 3
    
2.浮点型(float):
	eg:1.11, 2.66
        
3.字符串(str):
	eg:'max'
        
4.列表(list):数据可以是任意数据类型,通过索引取值
	eg:list = [1, 2, 3, 4]   
        
5.字典(dict):K是V的描述解释信息,K一般是字符串,V可以是任意数据类型,按K取值
    
6.布尔值(bool):用来判断事物的对错,是否可行,用于流程控制中。只有两种状态:True:对的、真的、可行的;False:错的、加的、不可行的。.python中所有的数据都自带布尔值,布尔值为False的数据: 0 None ''(空字符串) [](空列表) {}(空字典)。除了上面的数据布尔值都是True。(详见今日内容)
    
7.元组(tuple):小括号括起来,内部存放多个数据值,数据值与数据值之间用逗号隔开,数据值可以是任意数据类型。元组和列表都可以通过索引取值,列表可以通过索引把其中某个元素赋予新的数据值,但元组不行。(详见今日内容)
    
8.集合(set):只能用于去重和关系运算,集合内数据只能是不可变类型。{} 默认是字典,set() 默认是集合。

今日内容概要

  • 基本数据类型之布尔值

  • 基本数据类型之元组

  • 基本数据类型之集合set

  • 与用户交互

  • 格式化输出

  • 基本运算符

  • 常用赋值符

  • 逻辑运算符

  • 成员运算符

  • 身份运算符

  • 作业

今日内容详细

1.基本数据类型之布尔值bool

1.用来判断事物的对错,是否可行,用于流程控制中

2.只有两种状态:
	True:对的、真的、可行的
	False:错的、加的、不可行的
    
3.python中所有的数据都自带布尔值
	布尔值为False的数据: 0 None ''(空字符串) [](空列表) {}(空字典)
	除了上面的数据布尔值都是True
    
4.存储布尔值的变量名一般都是以is开头
	is_delete = True
	is_alive = True 
    
"""
很多程序土工用户注销功能,其实底层并没有删除用户的数据,而是修改了布尔值
"""
    

2.数据类型之元组tuple

1.也称为'不可变'的列表:
	元组内索引绑定的内存地址不能修改。
    
2.小括号括起来,内部存放多个数据值,数据值与数据值之间用逗号隔开,数据值可以是任意数据类型。

3.代码实现
	t1 = (10, 11.11, 'max')
    
4.元组和列表对比
	4.1 元组和列表都可以通过索引取值,列表可以通过索引把其中某个元素赋予新的数据值,但元组不行。
    # list = [11, 22, 33]
    # print(list[0])
    # list[0] = 888
    # print(list[0])  结果: [888, 22, 33]

    # t1 = (11, 22, 33)
    # print(t1[0])
    # t1[0] = 666
    # print(t1)  结果:报错
    
	4.2 元组'不可变',不能通过索引来改变内部的元素,但列表增加一个元素后内存地址并未改变,相当于元组中的元素没有改变。
    # t1 = (11, 22, [111, 222])
    # t1[2][1] = 666
    # print(t1) 结果:(11, 22, [111, 666])
    
5.当元组内部只有一个数据值:数据类型是它本身的数据类型,加一个逗号之后,数据类型是元祖
    # t1 = (11)
    # t2 = (11,)
    # print(type(t1)) #<class 'int'>
    # print(type(t2)) #<class 'tuple'>
    
    # t1 = (12.12)
    # t2 = (12.12,)
    # print(type(t1))  #<class 'float'>
    # print(type(t2))  #<class 'tuple'>
    
    # t1 = ('max')
    # t2 = ('max',)
    # print(type(t1)) #<class 'str'>
    # print(type(t2)) #<class 'tuple'>\
"""
建议:如果以后可以存储多个数据值的数据类型中只有一个数据值时,建议数据值后面加上逗号
"""

3.基本数据类型之集合set

1.集合只能用于去重和关系运算(未讲,暂且忽略)。

2.集合内数据只能是不可变类型(未讲,暂且忽略)。

3.大括号括起来,内部存放多个数据值,数据值之间用逗号隔开,数据值不是K:V键值对。

4.代码实现:
	s1 = {1, 2, 3, 4}
    
5.空集合和空字典:
	{} 默认是字典
	set() 默认是集合

4.与用户交互

1.获取用户输入:input
	username = input('请输入您的用户名>>>:')
	"""
	原理:
	1.先执行ipunt获取用户输入
	2.将获取到的数据赋值给username
	3.以后再程序中使用变量名username就可以找到用户输入的数据
	"""
	input获取到的用户数据(无论什么数据类型)都会统一处理成字符串
    
2.输出内部信息:
	2.1 print括号内即可以放数据值也可以放变量名,并且支持多个,用逗号隔开即可。

	2.2print自带换行符
    	换行符:\r\n或\n(斜杠和字母组合到一起会产生特殊的含义)
    	print('今天是个好天气\n明天也是个好天气')
		#今天是个好天气
		#明天也是个好天气
        
	2.3print可以切换结束符,结束符默认是换行
    	print(数据,end = '默认是\n')
    
		# print('jason', end = '')
		# print('jason') #结果:jasonjason
        
	2.4python2和python3区别1:	
    	python2中需要用户自己制定数据类型,写什么类型就是什么数据类型,写字符串要加双引号。
		 python3中不管什么数据类型都会转成字符串。
       python中的raw_input与python3中的input一致,不管输入什么数据类型都会转成字符串。
![image](uploading...)
    
    2.5python2和python3的区别2:
    	python2中打印方式有两种:print(数据值)、print 数据值,python3只适用于前一种。

image
image
image

5.格式化输出:

1.定义好一些内容,将来需要使用的时候可以局部修改,eg:奖状、合同。

2.代码实现:定义好的其他部分,部分内容做修改,需用占位符:%s、d%。

2.1单个占位符:
# info = '你好%s先生!'
# print(info % 'max')
# print(info % ('max',)) #推荐采用此种方式,此种方式不受占位符个数的限制

2.2多个占位符
# info = '您好%s先生,您本月%s银行消费%s元,余额%s元'
# print(info % ('max', '交通', 8888, 1.25))
#结果:您好max先生,您本月交通银行消费8888元,余额1.25元

2.3注意:有几个占位符就需要几个数据值,多了不行少了也不行

2.4不同占位符的区别:%s可以用于占位各种数据类型,d%只能占位数字
# info = '您好%s先生,您本月%s银行消费%s元,余额%s元'
# print(info % ('max', '交通', 8888, 1.25))
#结果:您好max先生,您本月交通银行消费8888元,余额1.25元

# info = '您好%d先生,您本月%d银行消费%s元,余额%d元'
# print(info % ('max', '交通', 8888, 1.25))
#结果:报错( %d format: a number is required, not str)

2.5 %d的其他用法:
	如果后面的数字位数少于总位数:
	print('%015d' % 12) #结果:000000000000012 含义:一共十五位数字,最后两位是12,前面的都用0替代。
	如果后面的数字位数多余总位数:
	print('%06d' % 12345678) #结果:12345678 含义:一共6位数,最后8位数是12345678,但是后缀数字多于总位数,输出结果为后缀数字。
"""
目前此种用法只能针对开头数字为0的,开头数字不为0暂且无法使用
"""

image

6.基本运算符

1.数学运算符
+ - * / %(取余) //(整除) **(指数)
简化写法:
n = 10
n += 2 #n = n + 1
n -= 2 #n = n - 1
n *= 2 #n = n * 1
n /= 2 #n = n / 1
n %= 2 #n = n % 1
n //= 2 #n = n // 1
n **= 2 #n = n ** 1

2.比较运算符:
< > <= >= ==(等于) !=(不等于))

7.常用赋值符

1.链式赋值:
	age = 18
	age1 = age
	age2 = age
   链式复制:age = age1 = age2 = 18
2.交叉赋值
	m = 100
	n = 99
"""
要求:把m和n互换绑定的值
"""
方法1:引入中间变量
     m = 100
     n = 99
    # x = m
    # m = n
    # n = x
    # print(m, n)
    
方法2:交叉赋值
m, n = n, m #相当于把m,n指向的数据值互换
print(m, n) #结果:99,100

3.解压赋值
	3.1当左边的变量名和右边的数据值数量相等时:
	name_list = ['jason', 'kevin', 'tony', 'oscar']
	name1, name2, name3, name4 = name_list
print(name1, name2, name3, name4)
	
	3.2当需要解压的数据特别多,我们也只需要其中的那么几个,那么可以打破这个规则,*可以完成这个使命。当打包的数据值不准备使用时,可以用_作为变量名绑定。
    name_list = ['jason', 'kevin', 'tony', 'oscar', 'max']
    name1, name2, *_ = name_list
    print(name1, name2, _)
    
    

8.逻辑运算符

1.and(与)
	and连接的多个条件同时成立,结果才成立,只要发现一个不成立,结果就不成立。
	1.1and左右都为逻辑判断时左右判断都正确时结果才成立。
	print(1<2 and 2<3): True
   print(5<4 and 6<7): False
   
	1.2如果需要准确结果值:如果and左边的条件成立,则完全取决于右边的条件,右边如果直接是数据值,name结果就是该数据值,如果是表达式,则为布尔值。
	print(1 <10 and 666) #666
	print(1 <10 and 2<8) #True
	print(111 and 222) #222 #左边布尔值是True,看右边,右边是表达式则结果是表达式
    
2.or (或)
	or 连接的条件只要有一个成立,结果就成立。如果or左右两边或一边是表达式并且成立,结果为True,若有一边是表达式并且不成立,另一边是数据值,则结果为数据值。
	print(1 < 10 or 666) #True
	print(666 or 1 > 10) #666
	print(0 or False) #False
	print(0 or 111) #111
    
3.not(非):用法为取反
  
"""
三者混合使用时有优先级之分,但我们不需要记忆优先级,应该通过代码的形式规定好优先级,方式为使用括号
"""    

9.成员运算符

判断个体是否在群体内
1.列表判断
    name_list = ['jason', 'kevin', 'oscar', 'jerry']
    print('kevin' in name_list)
    print('kevin' not in name_list)
    print('j' in name_list) #False 列表最小单位是数据值 ,不能再细分
    
 2.字符串判断
    
    s = 'hello world'
	print('h' in s) #True 字符串最小的单位是单个的字符
    
3.字典判断
	d1 = {
      'username': 'jason',
      'pwd': 123
}
	print('username' in d1) #True 字典成员运算只有K参与
	print('jason' in d1) #False

10.身份运算符

1.print(id(变量名)),返回一串数字是内存地址

2.is: 判断内存地址是否相同
==: 判断数据值是否相同
# l1 = [1, 2, 3, 4, 5]
# l2 = [1, 2, 3, 4, 5]
# print(id(l1))
# print(id(l2))
# print(l1 == l2) #True 
# print(l1 is l2) #False
"""
结论:数据值相同,内存地址不一定相同;内存地址相同,值一定相同
"""

作业

2.获取用户输入并打印成下列格式
	 ------------ info of Jason -----------
    Name : Jason
    Age  : 18
    Sex  : male
    Job  : Teacher 
    ---------------- end -----------------
user_name = input('请输入您的用户名>>>:')
user_age = input('请输入您的年龄>>>:')
user_sex = input('请输入您的性别>>>:')
user_job = input('清输入您的职业>>>:')
t1 = (user_name, user_name, user_age, user_sex, user_job)
print('------------ info of %s -----------\n'
      'Name : %s\n'
      'Age  :%s\n'
      'Sex  :%s\n'
      'Job  :%s\n'
      '---------------- end -----------------' % t1)
#思考过程:围绕今天所学的格式化输出内容(%s % 元组)思考,难点在于备选项的元组
t1。我的想法是首先获取用户输入,然后用一个变量名命名,之后把四个变量名组合成一
个元组t1,补全格式化输出的语法。难点2在于输出时换行符的位置,如果不加换行符所
有的代码会排成一行,如果换行符再字符串的‘’以外则会报错,所以\n只有在每行''之
内,才能起到换行作用。
4.4.准备说出下列变量名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
    v5 = 0 and 2 or 1 or 4 #1
    v6 = 0 or False and 1 #False #or前后都不成立结果是false,不能用0代替

标签:python,t1,数据类型,day04,学习,print,变量名,数据,元组
From: https://www.cnblogs.com/zkz0206/p/16732611.html

相关文章

  • python5
    python数据类型数据类型-布尔值(bool)1.判断失误的对错是否可行只用于流程控制中2.只有两种状态:True对的False错的3.python中所有数值自带布尔值......
  • python小白入门学习day04
    python小白入门学习day04目录§一、周末内容回顾1、PEP8规范2、python注释语法3、变量与常量4、数据类型§二、今日内容详细1、作业详解2、基本数据类型之布尔值bool2、基......
  • drf学习笔记
    昨日内容回顾http协议版本区别:0.9版本:每个http请求都是一个tcp的链接1.1版本:keep-alvie,每个http请求可以使用同一个tcp2.x版本:同一个tcp的包,可能是多个http请求,多路......
  • 线性表前期学习
         ......
  • day04
    今日内容总结常见的数据类型补充布尔值bool用途:用于表达事物对错以及是否可行用于流程控制1.存在状态true对的可行的false错的不可行的......
  • python
    python数据类型基础数据类型之布尔值bool+布尔值bool用来判断事物的对错,是不是可行。主要用于流程控制中只有两种形态1.True对的,真的,可行的2.False错的,假的,......
  • Python-函数-算术函数
    #python-函数-算术函数#(1)加减乘除#加法add(),减法subtract(),乘法multiply(),除法divide()#作用:数组间的加减乘除importnumpyasnpx=np.arange(9,dtype=......
  • python基本数据类型二
    python基本数据类型二1.布尔值bool描述用于判断事物的对错,是否可行,主要用于流程控制状态只有两种状态True和falseTrue对的,真的,可行的False错的,假的,不可行......
  • 51单片机学习日志一:流水灯和定时器
    单片机最小系统的三要素就是电源、晶振、复位电路单片机复位一般是3种情况:上电复位、手动复位、程序自动复位。没有电压差就不会产生电流一、sbit在单片机中的使用C5......
  • python中组合数据的操作
    2022-09-26组合数据类型:列表   字典   集合   元组拷贝:   deep(深拷贝)   shallow(浅拷贝)  区别:例如,文件中有一个指针指向另一块存储空间......