8天学习python笔记02
day02快速上手
目标:学习Python最基础的语法知识,可以用代码快速实现一些简单的功能。
1.编码
计算机中所有的数据本质上都是以0和1的组合来存储。
在计算机中会将中文内存转换成01010101...,最终存储到硬盘上。
2.编码初体验
-
编码必须要保持:保存和打开要一致,否则会乱码。
-
默认Python解释器是以UTF-8编码的形式打开文件。如果想要修改Python的默认解释器编码,可以这样:
# -*- coding:gbk -*- print("我是python")
-
建议:所有Python代码文件的都要以UTF-8编码保存和读取
3.输出
将结果打印出来
print("看看风景美如画")
关于输出
- 默认print在尾部会加换行符
print("看看风景美如画")
print("本想吟诗赠天下")
输出:
看看风景美如画
本想吟诗赠天下
- 想要不换行可以这样
print("看看风景美如画", end="")
print("本想吟诗赠天下", end="")
输出:
看看风景美如画本想吟诗赠天下
print("看看风景美如画", end=",")
print("本想吟诗赠天下", end="。")
输出:
看看风景美如画,本想吟诗赠天下。
练习题
1,使用print输出自己的名字
print("我是marry")
2,使用print输出
春眠不觉晓,
处处闻啼鸟,
夜来风雨声,
花落知多少。
print("春眠不觉晓, ")
print("处处闻啼鸟, ")
print("夜来风雨声, ")
print("花落知多少。")
3,是用print输出
春眠不觉晓,处处闻啼鸟,夜来风雨声,花落知多少。
print("春眠不觉晓", end=",")
print("处处闻啼鸟", end=",")
print("夜来风雨声", end=",")
print("花落知多少", end="。")
4.初始数据类型
4.1整型(int)
整型在写代码时用于表示整数相关的东西,例如年龄,存款,尺寸,手机号等。
一般我们提到的:5,18,22,99,...等整数 在Python中都称为是整型,且支持 加/减/乘/除/取余 等操作。
print(666)
print(2 + 10)
print(2 * 10)
print(10 / 2)
Pycharm规范问题:
4.2字符串(str)
通过英文的 “ ”和 ‘ ’ 把字符串引用起来。
# 单行
print("Alex")
print('Alex')
print("中国北京昌平区")
print('中国北京昌平区')
# 多行
print("""中国北京昌平区""")
print('''中国北京昌平区''')
对于字符串
- 加,两个字符串可以通过加号拼接起来。
print('Alex'+"是北京昌平区")
输出:
Alex是北京昌平区
- 乘,让整形和字符串进行相乘,以实现让字符串重复出现N次并拼接起来。
print(3*"我想吃饺子")
输出:
我想吃饺子我想吃饺子我想吃饺子
4.3布尔类型(bool)
布尔类型中共有两个值:True/False
print(1 > 2)
输出:
False
print(1 == 1)
输出:
True
布尔实例
name = input("请输入你的用户名:")
if name == "alex":
print("用户登录成功")
else:
print("用户登陆失败")
补充:
1 > "alex" 整型和字符串不能比较大小
以下可以比较:
1 == "alex" 整型和字符串比较判断
1 < 3 整型和整型
1 == 3 整型和整型
"alex" == "eric" 字符串和字符串
4.4类型转换
上文数据类型int/str/bool有了初步了解,他们都有自己不同的定义方式。
- int, 整型定义时,必须是数字且无引号,例如:5,8,9
- str,字符串定义时,必须用双引号括起来,例如:"中国" ,"string","666
- bool,布尔值定义时,只能写True和False
不同的数据类型都有不同的功能,例如:整型可以加减乘除而字符串只能加(拼接)和乘法。
如果想要做转换可遵循一个基本规则:想转换什么类型就让他包裹一些。
例如: str(666)是将 整型转换为字符串、int("888")是将 字符串转888。
字符串和布尔 转换为整型:
# 字符串转换为整型
int("666")
int("999")
print("6"+"9") 的结果是 "69"
print(int("6")+int("9")) 的结果是"15"
#布尔类型转换为整型
int(True) 转换完等于1
int(False) 转换完等于0
整型和布尔 转换为字符串:
# 整型转字符串
str(345)
print(str(666) + str(9)) #结果为:"6669"
#布尔类型转换为字符串 得到的是字符串
str(True) #转换完等于"True"
str(False) #转换完等于"False"
整型和字符串转换为布尔类型
整型转布尔规则
- 任何非零的整数值(不论是正数还是负数),当被
bool()
函数转换时,都会得到True
。 - 零(
0
)是唯一的例外,当它被bool()
函数转换时,会得到False
。
# 整型转布尔
bool(1) True
bool(2) True
bool(0) False
bool(-10) True
字符串转布尔规则
- 空字符串
""
(即长度为 0 的字符串)被转换为False
。 - 非空字符串,不论其内容是什么,都会被转换为
True
。这包括含有任何字符的字符串,即使是只包含空白字符(如空格
、制表符
等)的字符串。
#字符串转布尔
bool("alex") True
bool("玻璃") True
bool("") False
bool(" ") True #空格也为True
4.5总结
-
字符串和布尔转换为整型:只有表示有效整数的字符串(如
"123"
或"-456"
)可以成功转换为整型,而布尔值True
和False
分别转换为整型1
和0
;其他情况下会引发ValueError
。 -
整型和布尔转换为字符串:任何整型数值都可以通过
str()
函数无损地转换为字符串表示形式,布尔值True
和False
也会被转换为对应的字符串"True"
和"False"
。 -
整型和字符串转换为布尔类型:非零整数和非空字符串都被转换为
True
,而整数0
和空字符串""
则转换为False
。 -
想要转换为那种类型,就用这类型的英文包裹一下。
int(...) str(...) bool(...)
练习题
1.计算整型50乘以10再除以5的商并使用print输出。
print(50 * 10 / 5)
2.判断整型8是否大于10的结果并使用print输出。
print(8 > 10)
3.计算整型30除以2得到的余数并使用print输出。
print(30 % 2)
4.使用字符串乘法实现 把字符串”我爱我的祖国"创建三遍并拼接起来最终使用print输出。
print("我爱我的祖国"*3)
5.判断字符串"wupeiqi"和"alex"是否相等的结果并使用print输出。
print("wupeiqi" == "alex")
6.判断整型666和整型666是否相等的结果并使用print输出。
print(666 == 666)
7.判断字符串"666"和整型666是否相等的结果并使用print输出。
print("666" == 666)
8.看代码写结果(禁止运行代码) :
print( int("100")*3 ) #300
print( int("123") + int("88") ) #201
print( str(111) + str(222) ) #111222
print( str(111)*3) #111111111
print( int("8") > 7) #True
print( str(111) == 111 ) #False
print( bool(-1) ) #True
print( bool(0) ) #False
print( bool("") ) #False
print( bool("你好") ) #True
print( True == True) #True
print( True == False) #False
print( bool("") == bool(0) ) #True
注意:类型转换不是改变原来值,实际在底层是新创建了一个值。例如有整数6,然后使用st()转化了一下得到"6",实际上这个字符串"6"是依据整数6新创建的。
5.变量
变量,其实就是我们生活中起别名和外号,让变量名指向某个值,格式为:【变量名=值】,以后可以通过变量名来操作其对应的值。
name = "marry"
print(name) #marry
# 给变量赋值
age = 18
# 使用变量
print(age) # 输出: 18
name = "alxe"
flag = 1 > 18
address = "北京昌平"+"沙河"
addr = "北京昌平" +"沙河" + name #北京昌平沙河alex
print(addr) #北京昌平沙河alxe
print(flag) #False
注意:
-
给变量赋值 age=18
-
让age代指值 age=18
5.1变量名的规范
age = 18
name = "alxe"
flag = 1 > 18
address = "北京昌平"+"沙河"
三个规范:
- 变量名只能由 字母,数字,下划线 组成。
- 不能以数字开头
n18k = "alex" #n18k 是合法的
# 非法的变量定义,会导致语法错误
# break = "error" # 'break' 是关键字
# 18kname = "error" # 以数字开头
# 使用时注意不要与内置函数或类型名称冲突
- 不能用Python内置的关键字
False await else import pass
None break except in raise
True class finally is return
and continue for lambda try
as def from nonlocal while
assert del global not with
async elif if or yield
俩个建议:
- 下划线连接命名
f_name ="peiqi"
b_age = 18
- 见名知意
age =18
color = red
练习题
name = "波比波比"
name0 ="玛丽"
name_1 ="爱丽丝"
_coach = "波波柯柯"
_ = "卡卡"
1_year = "1987" #错误
year_1 = "1949"
_1_year = "1999"
nali-ti = "玛丽" #错误
new*name = "扭扭" #错误
5.2 变量内存指向关系
情景一
name = "peiqi"
在计算机的内存中创建一块区域来保存字符串"peiqi",name变量名指向这块区域。
情景二
name = "peiqi"
name = "Alex"
在计算机的内存中创建一块区域来保存字符串"peiqi",name变量名指向这块区域。
然后,又在内存中创建了一块域保存字符串"Alex", name变量名指向"Alex"这块区域,不再指向"peiqi"所在区域,
(无人指向的数据会被标记为垃圾,由解释器自动化回收)
情景三
name = "peiqi"
new_name = "name"
在计算机的内存中创建一块区域来保存字符串"peiqi",name变量名指向这块区域。
new_name变量名指向name变量,因为被指向的是变量名,所以自动会转指向到name变量代表的内存区域。
情景四
name = "peiqi"
new_name = "name"
name = "alex"
在计算机的内存中创建一块区域来保存字符串"peiqi",name变量名指向这块区域(灰色线),
然后new_name指向name所指向的内存区域,最后又创建了一块区域存放"alex",让name变量指向"alex"所在区域。
情景五
num = 18
age = str(num)
在计算机的内存中创建一块区域保存整型18,num变量名则指向这块区域。通过类型转换依据整型18再在内存中创建一个字符串"18",age变量指向保存这个字符串的内存区域。
练习题
1,看代码结果
alex_len = 3
peiqi_len = 18
total = alex_len+peiqi_len
print(total) #21
2,看要求写代码
# 假设age为小明的年龄
age = 18
# 问:已知小李比小明大3岁,计算小李年龄赋值给ming_age变量并输出。
ming_age = age + 3 #21
# 问:已知小刘比小明小李的和还要大5岁,计算小刘年龄赋值给liu_age变量并输出。
liu_age = age + ming_age + 5 #44
3,看代码写结果
nickname = "一米八大高个"
username = nickname
username = "弟弟"
print (nickname ) #一米八大高个
print (username ) #弟弟
4,看代码写结果
nickname = "一米八大高个"
username = nickname
nickname = "弟弟"
print(nickname ) #弟弟
print(username) #一米八大高个
5,看代码写结果
nickname = "一米八大高个"
username = "弟弟"
text = username + nickname
print(text) #弟弟一米八大高个
6,看代码写结果
nickname ="一米八大高个"
username = nickname
nickname ="弟弟"
text = username + nickname
print(text) #一米八大高个弟弟
7,看代码写结果
string_number = "20"
num = int(string_number)
data = string_number*3
print (data) #202020
value = num*3
print (value) #60
6.注释
写代码时候,如果想要对写某内容进行注释处理,即:解释器忽略不会按照代码去运行。
- 单行注释
#声明一个name变量
name = "alex"
age = 19 #这表示当前用户的年龄
注意: 快捷键 command +? ,control+?
- 多行注释
# 声明一个name变量
# 声明一个name变量
# 声明一个name变量
name = "alex"
"""
多行注释内容
多行注释内容
"""
age = 19
7.输入
输入,可以实现程序和用户之间的交互。
# 1.右边input("请输入用户名:") 是让用户输入内容。
# 2.将用户输入的内容赋值给name变量。
name = input("请输入用户名: ")
if name == "alex"
print("登录成功")
else:
print("登录失败“)
data = input(">>>")
print(data)
特别注意:用户输入的任何内容本质上都是字符串。
1.提示输入姓名,然后给姓名后面拼接一个“烧饼", 提示输入姓名,然后给姓名后面拼接一个“烧饼", 最终打印结果。
name = input("请输入用户名:")
text = name + "烧饼"
print(text)
# 输出请输入用户名:marry
# marry烧饼
2.提示输入 姓名/位置/行为,然后做拼接并打印: xx在xx做xx。
name = input("请输入用户名:")
address = input("请输入位置:")
action = input ("请输入行为: ")
text = name +"在"+ address+"做"+ action
print(text)
# 请输入用户名:marry
# 请输入位置:北京
# 请输入行为: 吃饭
# marry在北京做吃饭
3.提示输入两个数字,计算两个数的和。
# 提示用户输入两个数字,并将它们转换为整数
number1 = int(input("请输入一个数字: ")) # 用户输入 "12" -> number1 变成整数 12
number2 = int(input("请输入一个数字: ")) # 用户输入 "12" -> number2 变成整数 12
# 计算两个数的和
value = number1 + number2
# 打印结果
print(value) # 输出应该是 24
8.条件语句
if 条件:
条件成立之后的代码...
条件成立之后的代码...
条件成立之后的代码...
else:
条件不成立之后执行的代码...
条件不成立之后执行的代码...
条件不成立之后执行的代码...
name = input("请输入用户名:")
if name == "alex":
print("sb")
else:
print("bs")
注意:统一缩进问题。都是四个空格。
8.1基本条件语句
- 示例1
print("开始")
if True:
print("123")
else:
print("345")
print("结束")
#输出结果
开始
123
结束
- 示例2
print("开始")
if 5==5:
print("123")
else:
print("345")
print("结束")
- 示例3
num = 19
if num > 10:
print("num变量对应值大于10")
else:
print("num变量对应值小于10")
- 示例4
username = "peiqi"
password = "666"
if username == "peiqi" and password == "666":
print("恭喜你,登录成功")
else:
print("登陆失败")
- 示例5
username = "peiqi"
if username == "peiqi" or username == "alex":
print("VIP大会员用户")
else:
print("普通用户")
- 示例6
number = 19
if number%2 == 1:
print("number是奇数")
else:
print("number是偶数")
number = 19
data = number%2 == 1
if data:
print("number是奇数")
else:
print("number是偶数")
- 示例7
if 条件:
成立
print("开始")
if 5 == 5:
print("5等于5")
print("结束")
练习题
1.提示用户输入用户名和密码,用户名等于"peiqi"且密码等于"uuu”就输出登录成功;否则输出登录失败。
username = input("请输入用户名:")
password = input("请输入密码:")
if username == "peiqi" and password == "uuu":
print("登录成功");
else:
print("登录失败")
2.猜数字,提示用户输入一个数字,判断数字如果大于10,就输出猜对了;否则输出猜错了。
num = int(input("请输入一个数字:"))
if num >10:
print("猜对了")
else:
print("猜错了")
3.提示用户输入一个数字, 判断是否为偶数,是偶数则输出偶数,否则输出奇数。
num = int(input("请输入一个数字:"))
# 判断是否为偶数
if num % 2 == 0:
print("是偶数")
else:
print("是奇数")
8.2多条件判断
if条件A:
A成立,执行此缩进中的所有代码
...
elif条件B:
B成立,执行此缩进中的所有代码
...
elif条件C:
C成立,执行此缩进中的所有代码
...
else:
上述ABC都不成立。
num = input("请输入数字:")
data = int(num)
if data > 6:
print("太大了")
elif data == 6:
print("剛剛好")
else:
print("太小了")
score = input("请输入分数:")
data = int(score)
if data > 90:
print("代")
elif data > 80:
print("良")
elif data > 70:
print("中")
elif data > 60:
print("差")
else:
print("不及格")
8.3条件嵌套
if条件A:
( A成立,执行此缩进中的所有代码)
if条件A1:
...
else:
...
...
elif条件B:
(B成立,执行此缩进中的所有代码)
...
模拟10086客服:
print("欢迎致电10086,我们提供了如下服务: 1. 话费相关; 2.业务办理; 3.人工服务")
choice = input("请选择 服务序号:")
if choice == "1":
print("话费相关业务")
cost = input("查询话费请按1 ;交话费请按2 请输入:")
if cost == "1":
print("查询话费余额为100")
elif cost == "2":
print("交话费")
else:
print("输入错误")
elif choice == "2":
print("业务办理")
elif choice == "3":
print("人工服务")
else:
print("序号输入错误")
总结作业
1.什么是编码?打开文件时为什么会出现乱码?
编码相当于是一个'密码本',其中存储着文字和01010的对应关系。常见的编码有ASCII、GBK(中文简体)、UTF-8等。
出现乱码的原因:主要是因为文件保存时使用的编码格式与读取文件时所假设的编码格式不一致。
例如,如果一个文件是以GBK编码保存的,但使用UTF-8去读取,则会导致无法正确解析字符,从而显示乱码。
2.python解释器去打开代码文件时,默认使用编码是什么?如何修改?
Python解释器默认编码:utf-8
在文件的顶部通过设置:# -*- coding:编码 -*-实现修改。
3.print打印输出
print("Hello, world!")
text = """
文能提笔安天下,
武能上马定乾坤,
心存谋略何人胜,
智勇双全立功勋
"""
print(text)
4.变量的命名规范和建议
三规范:
- 变量名只能由 字母,数字,下划线 组成。
- 不能以数字开头
- 不能用Python内置的关键字
二建议
- 下划线连接命名
- 见名知意
5.如下那个变量名正确
9name = "宝浪" #错误
old(edu = 666 #错误
6.设定一个理想数字比如: 66, 让用户输入数字,如果比66大,则显示猜测的结果大了;如果比66小,则显示猜测的结果小了;只有等于6,显示猜测结果正确。
num input("请输入数字")
data = int(num)
if data >66:
print("大了")
elif data <66:
print("小了")
else:
print("结果正确")
7.提示用户输入"12345",判断用户输入的对不对。如果对,提示真聪明,如果不对,提示错误。
text = input("请输入内容")
if text == "12345":
print("真聪明")
else:
print("错误")
8.写程序,成绩有ABCDE 5个等级,与分数的对应关系如下.
A 90-100
B 80-89
C 60-79
D 40-59
E 0-39
要求用户输入0-100的数字后,你能正确打印他的对应成绩等级
score = input("请输入数字:")
data = int(score)
if data >= 90 and data <= 100:
print("A")
elif data >= 80 and data <90:
print("B")
elif data >= 60 and data <80:
print("C")
elif data >= 40 and data <60:
print("D")
elif data >= 0 and data <40:
print("E")
else:
print("输入错误")
# 提示用户输入成绩分数,并进行有效性检查
score = int(input("请输入0-100之间的数字:"))
# 检查输入是否在有效范围内
if 0 <= score <= 100:
# 根据分数范围输出对应的等级,使用链式比较
if 90 <= score <= 100:
print("A")
elif 80 <= score <= 89:
print("B")
elif 60 <= score <= 79:
print("C")
elif 40 <= score <= 59:
print("D")
else: # 即 0 <= score <= 39
print("E")
else:
print("输入错误,请输入0-100之间的数字。")
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本