python,day04笔记

内容回顾

  • 代码的注释

    1.#   单行注释
    2.'''''',""""""  多行注释
    在pycharm中的快捷键ctrl+?   注释快捷键,再次激活取消注释'''
    
  • 变量

    语法规范
    变量名 赋值符号 变量的值
    name = 'james'
    """
    遇到赋值符号先看符号右边的
    再看符号左边的
    """
    # 情况1 
    name = 'jason'
    name = 'egon'
    name = 'tony'
    '''name依次被赋予 jason  egon tony 三个值,但是最后只能指向一个值
    所有此时name对应的值为 tony'''
    # 情况2
    
    name = 'jason'
    name1 = name
    name2 = name
    '''name被赋予Jason,name1,name2 同时被赋予name的值
    所有 name1 = name2 = name = Jason'''
    
  • 变量的命名规范(必须遵守)

    1.只能包含数字、字母、下划线
    2.数字不能开头、下划线也尽量不要开头(隐藏变量)
    3.变量名一定要做到见名知意
    4.变量名不能跟python里面的关键字冲突'''
      
    print(123)
    print = 'hello world'  # 不能使用关键字作为变量名
    
    print(123)
    print被作为变量名赋值之后则他会失去原本打印的功能,所有
    变量名不可以是关键字字符'''
    
  • 变量的命名风格

    1.下划线
      user_name = 'jason'
    2.驼峰体
      userName = 'jason'
        UserName = 'jason'
    
    python推荐使用下划线,Js推荐使用驼峰体
    
  • 常量

    在python中没有真正意义上的常量,我们墨守成规的将全大写的变量名看成是常量
    HOST = '127.0.0.1'
    PORT = 6379
    在其他编程语言中如js是有真正意义上的常量的(定义之后就无法修改了)
    
  • PEP8规范

    1.赋值符号左右两边都应该有空格
    2.逗号后面应该有空格
    3.注释符号与文字之间应该有空格
    4.注释和代码在一行的情况下注释符号需要与代码之间空两格
      
    """
    先在pycharm中书写代码,你可以不考虑规范
    然后利用pycharm自动格式化代码的功能,学习它帮你格式化了哪些地方
    """
    
  • 查看数据类型

    type()
    
  • 数据类型

    整型int
    age = 18
      
    浮点型float
    salary = 11.11
      
    字符串str
    name = 'jason'
    name1 = "jason1"
    name2 = '''jason2'''
    name3 = """jason3"""
    # 小操作
    name + name1 
    name * 10
    
    列表list
    l1 = ['jason', 123, 11.11, [1, 2, 3]]
    # 索引(index)取值:在IT行业索引都是从0开始的
    l1[0]
    # 针对嵌套问题
    l1[0][2][1]
      
    字典dict
    字典的key一般情况下都是字符串,字典的value可以是任意数据类型
    d = {
        'name':'jason',
        'age':123,
        'hobby':[1, 2, 3]
    }
    # 字典的取值
    d['name']
    d.get('name')
    

今日内容概要

  • 数据类型之布尔值
  • 数据类型之元组
  • 数据类型之集合
  • 与用户交互及运算符
  • 数据类型的内置方法
  • 流程控制

今日内容详细

数据类型之布尔值bool

布尔值总共就两种情况
True
False
在逻辑运算中用来判断事物的对错和是否可行
(流程控制中会学习)

'''
在python中,如果一个变量的值是布尔值
那么我们会习惯性的将变量名起名为is开头
is_right = True
is_status = True
is_delete = True
'''

数据类型之元组tuple

符号:()

'''
元组与列表类似,也是可以存多个任意类型的元素,
不同之处在于元组的元素不能修改,
即元组相当于不可变的列表,
用于记录多个固定不允许修改的值,单纯用于取
目前你只需要知道元组就相当于不可变的列表
元组的符号是()
'''
name = (1, 2, 3, 4, 5)
print(type(name))
"""
元组的小坑

# t = (1)
# print(type(t))  # <class 'int'>
# t1 = ('jason')
# print(type(t1))  # <class 'str'>
# 如果元组里面只有一个元素,那么你也需要将逗号加上
t = (1,)
print(type(t))  # <class 'tuple'>
t1 = ('jason',)
print(type(t1))  # <class 'tuple'>
'''
容器类型:能够存储多个数据的数据类型,eg:list、tuple、dict
针对容器类型,如果里面只有一个元素
我们也推荐你将逗号加上
'''
"""

数据类型之集合set

符号:{}

'''
集合主要是用来做以下两种需求
1.去重
	去掉重复的元素
2.关系运算
	共同好友、共同关注
集合也可以存放多个数据,数据与数据之间逗号隔开,数据必须是不可变类型
集合的符号也是{}
s = {1, 2, 3, 4, 5, 6}
print(type(s))
'''

可变类型与不可变类型

可变类型
	值改变内存地址不变			列表

不可变类型
	值改变内存地址肯定变		   整型 浮点型 字符串

# 如何查看值的内存地址


id() 
# 返回一串数字,该数字你可以直接看成是内存地址

# name = 'jason'

# print(id(name))  # 2134060606104

# name = 'jasonDSB'

# print(id(name))  # 2134061440944


l = [1, 2, 3, 4, 5, 6, 7]
print(id(l))
# 修改列表元素数值的方式

l[0] = 666  # 将列表索引0的位置的值修改为666

print(1[0]) ===>  666

与用户交互

输入信息
输出信息

获取用户输入
	input()
输出结果
	print()
    
input('请输入您的用户名>>>:')
将input获取到的用户输入赋值给变量name

name = input('请输入您的用户名>>>:')

print(type(name))  ===> str'''
'''注意input获取到的用户输入都是字符串类型'''


# 输出单个数据

print(123)
# 输出多个数据

# print('jason', 'egon', 'kevin')

print('jason')
print('egon')
print('kevin')
# print("aaaa",end='')

# print("bbbb",end='&')

# print("cccc",end='@')

格式化输出

一段文本当中,针对后续可能被替换的部分,我们在定义该字符串的时候需要提前先用占位符占位
占位符:%s(任意数据类型均可)、%d(只能给数字占位

# 字符串里面有几个%s就表示后续可以替换几个文本

info = '亲爱的%s你好!你%s月的话费是%s,余额是%s'
# 将字符串格式化之后的结果赋值给变量res

res = info % ('jason', 10, 100, 100000000000000)
res1 = info % ('egon', 9, 100, -11110)
'''注意%s的使用 字符串里面事先有几个%s后续在替换的时候就需要给几个内容'''

运算符

"""
# 算数运算符
	+
    -
    *
    /
    **
    
# 比较运算符
	>
    <
    >=
    <=
    print(1 <= 2)  # True  表示判断正确
	print(1 > 5)  # False  表示判断错误
 
# 赋值运算符
	name = 'jason'
 
# 增量赋值(掌握)
	# 增量赋值
    x += 1  # x = x + 1
    x += 100  # x = x + 100
    x -= 1  # x = x - 1
    x *= 1  # x = x * 1
    x /= 1  # x = x / 1
  
# 链式赋值(掌握)
	# name = 'jason'
    # name1 = name
    # name2 = name
    # 链式赋值
    name = name1 = name2 = 'jason'
    print(name,name1,name2)
    
# 交叉赋值(掌握)
	m = 111
    n = 999
    # 将m和n互换
    # m = n
    # n = m
    # print(m,n)  # 错误示范

    # 方式1:通过中间变量
    # tmp = m
    # m = n
    # n = tmp
    # print(m,n)
    # 交叉赋值
    m, n = n, m
    print(m, n)
   
# 解压赋值(重要)
	name_list = ['jason', 'egon', 'kevin', 'tony']
    # 将列表中所有的名字取出分别赋值给不同的变量
    # name1 = name_list[0]
    # name2 = name_list[1]
    # name3 = name_list[2]
    # name4 = name_list[3]
    # print(name1,name2,name3,name4)
    # 解压赋值
    # name1, name2, name3, name4 = name_list
    # print(name1, name2, name3, name4)
    # 扩展知识点 了解即可
"""    '''
    注意事项
    1.解压赋值默认情况下左右变量的变量名和变量的值个数要相等
    2.可以借助于符号*来打破相等的限制
    '''
    # *会将多余没有被解压的元素统一组织成列表的形式赋值给*后面的变量名

   '''
    eg: 
     name, *arg = name_list
     print(name, arg)  # jason ['egon', 'kevin', 'tony']
     name, *_, name1 = name_list
     print(name, _, name1)  # jason ['egon', 'kevin'] tony
    '''


# 逻辑运算符(重要)

'''
and、or和not
        and的意思为“而且”,所以and运算符会链接两个布尔值,如果两个布尔值
        都是True,那么运算结果也为True;两边分布有一个False,那么结果就是false
        所以当and表达式左边结果为FALSE的时候,右边的表达式不论是什么运算结果都
        将是false,运算时右边的值将会被跳过,根本不会被执行(短路处理)。
        or的意思为或者,所以or连接的的也会是两个布尔值,如果两个布尔值有任意一个是
        true,那么运算结果就是true,当然or也有短路功能,当左边为true的情况下右边的
        表达式根本不会被执行。
        not运算符的右边会跟一个布尔值,他的作用是得到与该布尔值相反的值,
        也就是说当not后面的布尔值是 TRUE,那么运算结果就是FALSE,相反同理。
 '''
        
    ''' 
    !=  不等于
    res = 2 > 1 and 1 != 1 and True and 3 > 2
    print(res)  # False
    如果一个判断语句里面都是and,那么判断起来其实很方便
    你只需要从前往后一个个看,只要遇到一个不成立的后面就不用看了
    '''
    
    
    res = 2 > 1 or 1 != 1 or True or 3 > 2 
	print(res)  # True

    
    print(not res)  # False

    
    '''
    注意上述三个运算符在混合使用的时候是有优先级的
    但是我们不应该将优先级的判断交给用户,而应该使用括号的形式
    将优先级在代码层面就区分开,这样的话我们在判断的时候也会更加的方便
    '''
    res = (3 > 4 and 4 > 3) or ((1 == 3 and 'x' == 'x') or 3 > 3)
    print(res)  # False

    
# 成员运算  in

	'''
	判断某个个体在不在某个整体内
    eg:判断李强在不在我们班级学生名单中
    name_list1 = ['jason','egon','tony','kevin']
    # 判断tom在不在列表内
    print('tom' in name_list1)  # False
    # 取反
    print('tom' not in name_list1)  # True
    s1 = 'hello world'
    print('h' in s1)  # True
    '''
 
# 身份运算

	'''
	is	判断两者内存地址是否一样
    ==  判断两者值是否一样
   	值相同内存地址可能不同,内存地址相同值肯定相同
    
    l1 = ['jason','egon','kevin']
    l2 = ['jason','egon','kevin']
    # print(id(l1),id(l2))  # 2455183599432 2455183600136 值相同,地址不同
    '''
    
    
    # 判断值是否相等

    print(l1 == l2)  # True

    # 判断地址是否相等

    print(l1 is l2)  # False

流程控制

关键字 : if 判断条件是否满足

elif 当不满足if条件是流程进入elif

else 以上都不满足条件时就走else,兜底的

'''
流程控制即控制流程,具体指控制程序的执行流程,而程序的执行流程分为三种结构:
	顺序结构(之前我们写的代码都是顺序结构)
    	从上到下执行你写的代码
        
    分支结构(用到if判断)
    	根据条件的不同执行不同的操作
        
    循环结构(用到while与for)
    	重复执行某一段代码(操作)
        
   
分支结构(用到if判断)
    	根据条件的不同执行不同的操作
'''
    
# 如果女人的年龄大于40岁 叫阿姨

# age = 28

# if age > 40:  # 遇到冒号 说明后面的代码需要缩进(默认是4格)

#     print('阿姨好')

#     # print子代码只有在if后面的条件成立的情况下才会执行


# 如果女人的年龄大于40岁叫阿姨否则叫小姐姐

# age = 45

# if age > 40:

#     print('阿姨好')

# else:

#     print('小姐姐 加个微信吧')

    # 当if条件不成立的时候就会走else

'''if和else连用的情况下 两者只会执行一个
走了if肯定不走else
走了else说明if不成立
'''


# 如果:成绩>=90,那么:优秀

# 如果成绩>=80且<90,那么:良好

# 如果成绩>=70且<80,那么:普通

# 其他情况:很差

score = input('score>>>:')
score = int(score)  # 忽略

if score >= 90:
    print('优秀')
elif score >= 80:
    print('良好')
elif score >= 70:
    print('普通')
else:
    print('你不行!!!')
'''
if...elif...else
三者连用 也是只会走一个
'''
'''
语法结构
if 条件1:   # 如果条件1的结果为True,就依次执行:代码1、代码2,......
   代码1
    代码2
    ......
elif 条件2: # 如果条件2的结果为True,就依次执行:代码3、代码4,......
   代码3
    代码4
    ......
elif 条件3: # 如果条件3的结果为True,就依次执行:代码5、代码6,......
   代码5
    代码6
    ......
else:     # 其它情况,就依次执行:代码7、代码8,......
    代码7
    代码8
    ......
'''

python中的缩进

遇到冒号就缩进!

'''在python中用缩进来表示代码的从属关系
如果一行代码下面的代码缩进了说明下面的代码属于上面的代码'''
if age > 40:  # 遇到冒号 说明后面的代码需要缩进(默认是4格)

    print('阿姨好')
    # 此处print就属于if的子代码

 
'''并不是所有的代码都可以有子代码的权限
截止目前为止 唯一可以有子代码的关键字就是if

属于同一个的代码的多个子代码一定要保证相同的缩进量,python中推荐缩进4个空格(在windows中tab键刚好就是4个空格)

小技巧:你可以看代码后面有没有冒号 如果有 下面的代码肯定要缩进  '''

作业

# 练习1:接收用户输入的用户名密码,打印成指定格式
username = input('用户名:')
password = input('密码:')
print("用户名:")
print(username)
print("密码:")
print(password)
           
'''# 练习2:用户输入姓名、年龄、工作、爱好 ,然后打印成以下格式
------------ info of Tony -----------
Name  : Tony
Age   : 22
Sex   : male
Job   : Teacher 
------------- end -----------------'''

解2:
name = input('姓名:')
age = input('年龄:')
sex = input('性别:')
job = input('工作:')
print('--------info of', name, '--------')
print('Name: ', name)
print('Age: ', age)
print('Sex: ', sex)
print('Job: ', job)
print('---------end------------------')


# 练习3:使用if判断尝试着编写一个用户登录功能

#思路:获取用户的用户名和密码 然后判断是否正确(jason 123)
解3:username = input('用户名:')
password = input('密码:')
if username == 'jason' and password == '123':
    print('登录成功')
else:
    print('登录失败')

    
''' 练习4:成绩评判系统(照着我写的好好理解)
解4:
score = input('score:')
score = int(score)
if score >= 90:
    print('优')
elif score >= 80:
    print('良')
elif score >= 70:
    print('中')
elif score >= 60:
    print('合格')
else:
    print('不及格')

如何进步

'''我们每一次的进步都是一次赶鸭子上架的过程'''

posted @ 2020-11-01 23:04  zmh。  阅读(74)  评论(0)    收藏  举报