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('不及格')
如何进步
'''我们每一次的进步都是一次赶鸭子上架的过程'''
浙公网安备 33010602011771号