轩小陌的Python笔记-day02 快速上手
day02 快速上手
课程目标:学习Python最基础的语法知识,可以用代码快速实现一些简单的功能。
课程概要:
- 初识编码(密码本)
- 编程初体验
- 输出
- 初识数据类型
- 变量
- 注释
- 输入
- 条件语句
1.初识编码(密码本)
计算机中所有的数据本质上都是以0和1的组合来存储,在计算机中会将中文内存转换成 01010101010… ,最终存储到硬盘上。
在计算机中有很多种编码,编码其实就是一个密码本。
轩 -> 01111111 00011010 010110110小 -> 01001111 10010000 001110100陌 -> 11111111 00000000 010101010
每种编码都有自己的一套密码本,都维护这自己的一套规则,如:
utf-8编码:轩 -> 01111111 00011010 010110110小 -> 01001111 10010000 001110100陌 -> 11111111 00000000 010101010gbk编码:轩 -> 11111111 00000010小 -> 01001111 01111111陌 -> 00110011 10101010
所以,使用的不同的编码保存文件时,硬盘的文件中存储的0/1也是不同的。
注意事项:以某种编码的形式进行保存文件,以后就要以这种编码去打开文件。否则就会出现乱码。
2.编程初体验
编码必须要保持:保存和打开一致,否则导致乱码
默认 Python 解释器是以 utf-8 编码的形式打开文件,如果想要修改 Python 的默认解释器编码,可以增加:
# -*- coding:gbk -*-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YQ9DYr1C-1647995820711)(assets/image-20220322211623783.png)]
建议:所有Python代码文件都以 utf-8 编码进行保存和读取。
3.输出
将结果或内容呈现给用户。
print('看这风景美如画')
关于输出:
- 默认 print 在尾部会加换行符
print('看这风景美如画')
print('本想吟诗赠天下')# 输出结果
看这风景美如画
本想吟诗赠天下
- 想要不换行,可以在后面传入参数end:
print('看这风景美如画',end=',')
print('本想吟诗赠天下',end='')# 输出结果
看这风景美如画,本想吟诗赠天下
练习题
- 使用 print 输出自己的姓名
print('轩小陌')
- 使用 print 输出
春眠不觉晓,
处处闻啼鸟,
夜来风雨声,
花落知多少。
print('春眠不觉晓,')
print('处处闻啼鸟,')
print('夜来风雨声,')
print('花落知多少。')
- 使用 print 输出
春眠不觉晓,出处闻啼鸟,夜来风雨声,花落知多少。
print('春眠不觉晓,出处闻啼鸟,夜来风雨声,花落知多少。')
4. 初识数据类型,
4.1 整型( int )
整型:整数。整型其实就是我们通常意义上说的整数,在写代码时用于表示整数相关的东西,例如:年龄、存款、尺寸、手机号等。一般我们提到的:5、18、22、99、… 等整数 在Python中都称为是整型,且支持加/减/乘/除/取余/指数等操作。
print(666)
print(2 + 10)
print(2 * 10)
print(10 / 2)
print(10 % 3)
print(2 ** 4)
4.2字符串( str )
字符串,其实就是我们生活中的文本信息。例如:姓名、地址、自我介绍等。
字符串有一个特点,他必须由引号引起来,如:
- 单行字符串
print('我是轩小陌')
print('中国北京昌平区')
print('我是"轩小陌"')
- 多行字符串
print('''中国广州天河区''')
- 字符串拼接:两个字符串可以通过过加号拼接起来。
'hjj'+'是轩小陌吧'
'hjj是轩小陌吧'
- 字符串复制:让整型和字符串进行相乘,以实现让字符串复制并拼接起来。
3 * '我想吃饺子'
'我想吃饺子我想吃饺子我想吃饺子'
4.3布尔类型(bool)
布尔类型中共有两个值:True 、 False
示例1:
print(1 > 2)
print(1 == 1)# 输出结果:
False
True
示例2:
1 > 2
1 == 3
'alex' == 'eric'
1 == 'alex'
# 整型跟字符串是无法进行比较大小,如:1 > 'alex'
4.4类型转换
通过上文,对数据类型 int / str / bool 有了初步了解,他们都有自己不同的定义方式:
- int ,整型定义时,必须是数字且无引号,例如:5、8、9
- str ,字符串定义时,必须用引号括起来,例如:“中国”、“轩小陌”、”666”
- bool ,布尔值定义时,只能是True 和 False
不同的数据类型都有不同的功能,例如:整型可以加减乘除 而字符串只能加(拼接)和乘(复制)。如果想要进行数据类型的转换,可以如下操作:
例如:str(666) = “666” 是将整型转换为字符串、int( “888” )是将字符串转为 888。
- 转换为整型:
# 字符串转换为整型
int('666')
int('999')
'6' + '9' # '69'
int('6') + int('9') # 15
int('alex是sb') # 报错# 布尔类型转换为整型
int(True) # 1
int(False) # 0
- 转换为字符串:
# 整型转字符串
str(345) # '345'
str(666) + str(9) # '6669'# 布尔类型转换为字符串
str(True) # 'True'
str(False) # 'False'
- 转换为布尔类型:
# 整型转换为布尔类型
bool(1) # True
bool(2) # True
bool(0) # False
bool(-10) # True# 字符串转换为布尔类型
bool('alex') # True
bool('轩小陌') # True
bool('') # False
bool(' ') # True
小结:
- 其他所有类型转换为布尔类型时,除了空字符串和0以外,其他都是True。
- 字符串转整型时,只有 ’ 998 ’ 格式的字符串才可以转换为整型,其他都报错。
- 想要转换为哪种类型,就用这种类型的英文包裹一下。
练习题
- 计算整型50乘以10再除以5的商并使用print输出。
print(50 * 10 / 5)
- 判断整型8是否大于10的结果并使用print输出。
print(8 > 10)
- 计算整型30除以2得到的余数并使用print输出。
print(30 % 2)
- 使用字符串乘法实现 把字符串”我爱我的祖国”创建三遍并拼接起来最终使用print输出。
print('我爱我的祖国' * 3)
- 判断 字符串”xuanxiaomo”和”hjj”是否相等的结果并使用print输出。
print('xuanxiaomo' == 'hjj')
- 判断 整型666和整型666是否相等的结果并使用print输出。
print(666 == 666)
- 判断 字符串”666”和整型666是否相等的结果并使用print输出。
print('666' == 666)
- 看代码写结果(禁止运行代码):
print( int("100")*3 ) # 300
print( int("123") + int("88") ) # 211
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 使用 str(6) 转化了得到 “6”,实际上这个字符串 “6” 是依据整数 6 新创建的。
5. 变量
变量,其实就是起别名和外号,让变量名指向某个值,格式为: 变量名 = 值,以后可以通过变量名来操作其对应的值。
name = '轩小陌'
print(name) # 输出结果:
'轩小陌'
age = 18
name = 'hjj'
flag = 1 > 18
number = 1 == 2
address = '北京昌平' + '沙河'
address = '北京昌平' + '沙河' + name # '北京昌平沙河hjj'
5.1 变量名的规范
- 变量名只能由字母、数字、下划线组成。
user_name9 = 'hjj' # 正确
user#name% = 'hjj' # 错误
- 不能以数字开头
na9me9 = "hjj" # 正确
9name9 = "hjj" # 错误
- 不能用Python内置的关键字
def = "hjj" # 错误
break = 123 # 错误Python中的内置函数有:‘and’, ‘as’, ‘assert’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘except’, ‘exec’, ‘finally’, ‘for’, ‘from’, ‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘not’, ‘or’, ‘pass’, ‘print’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’
建议:
- 长命名用下划线连接(小写)
father_name = 'alxe'
brother_age = 19
- 最好做到见名知意
age = 18
color = 'red'
current_user_name = '吉诺比利'
练习题
name = "吉诺比利" # 正确
name0 = "帕克" # 正确
name_1 = "邓肯" # 正确
_coach = "波波维奇" # 正确
_ = "卡哇伊" # 正确
1_year = "1990" # 错误
year_1_ = "1990" # 正确
_1_year = "1990" # 正确
nba-team = "马刺" # 错误
new*name = "伦纳德" # 错误
5.2 变量内存指向关系
通过学习上述变量知识让我们对变量了有了初步认识,接下来我们就要从稍稍高级一些的角度来学习变量,即:内存指向(在电脑的内存中是怎么存储的)。
情景一
name = "wupeiqi"
在计算机的内存中创建一块区域保存字符串”wupeiqi”,name变量名则指向这块区域。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RL6XuBLp-1647995820712)(assets/image-20220322215746723.png)]
情景二
name = "wupeiqi"
name = "alex"
在计算机的内存中创建一块区域保存字符串”wupeiqi”,name变量名则指向这块区域。然后又再内存中创建了一块域保存字符串”alex”,name变量名则指向”alex”所在的区域,不再指向”wupeiqi”所在区域(无人指向的数据会被标记为垃圾,由解释器自动化回收)
情景三
name = "wupeiqi"
new_name = name
在计算机的内存中创建一块区域保存字符串”wupeiqi”,name变量名则指向这块区域。new_name变量名指向name变量,因为被指向的是变量名,所以自动会转指向到name变量代表的内存区域。
情景四
name = "wupeiqi"
new_name = name
name = "alex"
在计算机的内存中创建一块区域保存字符串”wupeiqi”,name变量名则指向这块区域(灰色线), 然后new_name指向name所指向的内存区域,最后又创建了一块区域存放”alex”,让name变量指向”alex”所在区域.
情景五
num = 18
age = str(num)
在计算机的内存中创建一块区域保存整型18,name变量名则指向这块区域。通过类型转换依据整型18再在内存中创建一个字符串”18”, age变量指向保存这个字符串的内存区域。
至此,关于变量的内存相关的说明已讲完,对于初学者,关于变量的内存管理目前只需了解以上知识点即可,更多关于内存管理、垃圾回收、驻留机制等问题在后面的课程中会讲解。
练习题
看代码结果
alex_length = 3 wupeiqi_length = 18 total = alex_length + wupeiqi_length print(total)# 输出结果: 21
按要求写代码
# 假设age为小明的年龄 age = 18# 问:已知小李比小明大3岁,计算小李年龄赋值给ming_age变量并输出 ming_age = age + 3 print(ming_age)# 问:已知大刘比小明和小李年龄的和还要大5岁,计算大刘的年龄赋值给liu_age变量并输入 liu_age = age + ming_age + 5 print(liu_age)
看代码写结果
nickname = "一米八大高个" username = nickname username = "弟弟" print(nickname) print(username)# 输出结果: "一米八大高个" "弟弟"
看代码写结果
nickname = "一米八大高个" username = nickname nickname = "弟弟" print(nickname) print(username)# 输出结果: "弟弟" "一米八大高个"
看代码写结果
nickname = "一米八大高个" username = "弟弟" text = username + nickname print(text)# 输出结果: "弟弟一米八大高个"
看代码写结果
nickname = "一米八大高个" username = nickname nickname = "弟弟" text = username + nickname print(text)# 输出结果: "一米八大高个弟弟"
看代码写结果
string_number = "20" num = int(string_number) data = string_number * 3 print(data) value = num * 3 print(value) # 输出结果: "202020" 60
6. 注释
写代码时,如果对某些内容进行注释处理,解释器会忽略注释内容不会按照代码去运行。
- 单行注释
# 声明一个name变量
name = 'alex'
age = 18 # 这表示当前用户的年龄# 快捷键:command + / 、Ctrl + /
- 多行注释
方法1:
# 声明一个name变量
# 声明一个name变量
# 声明一个name变量
name = 'alex'方法2:
'''
多行注释内容
多行注释内容
多行注释内容
'''
age = 19
7.输入
输入,可以实现程序和用户之间的交互。
name = input('请输入用户名:')
if name == 'alex':print('登录成功')
else:print('登录失败')
data = input('>>>')
print(data)
特别注意:用户输入的任何内容本质上都是字符串。
练习题
提示输入姓名,然后给姓名后面拼接一个“烧饼”,最终打印结果。
name = input("请输入用户名:") text = name + "烧饼" print(text)
提示输入姓名 / 位置 / 行为,然后做拼接并打印:xx 在 xx 做 xx 。
name = input("请输入用户名:") address = input("请输入位置:") action = input("请输入行为:") text = name + "在" + address + action print(text)
提示输入两个数字,计算两个数的和。
number1 = input("请输入一个数字:") number2 = input("请输入一个数字:") value = int(number1) + int(number2) print(value)
8. 条件语句
if 条件:条件成立之后的代码...条件成立之后的代码...条件成立之后的代码...
else:条件不成立之后执行的代码...条件不成立之后执行的代码...条件不成立之后执行的代码...# 注意:统一缩进问题(一般都是使用四个空格 = tab)。
示例:
name = input('请输入用户名:')
if name == 'alex':print('ab')
else:print('db')
8.1 基本条件语句
- 示例1:
print('开始')
if True:print('123')
else:print('456')
print('结束')# 输出结果:
开始
123
结束
- 示例2:
print('开始')
if 5 == 5:print('123')
else:print('456')
print('结束')# 输出结果:
开始
123
结束
- 示例3:
num = 19
if num > 10:print('num变量大于10')
else:print('num变量不大于10')# 输出结果:
num变量大于10
- 示例4:
username = 'xuanxiaomo'
password = '666'
if username == 'xuanxiaomo' and password == '666':print('登录成功')
else:print('登录失败')# 输出结果:
登录成功
- 示例5:
username = 'xuanxiaomo'
if username == 'xuanxiaomo' or username == 'alex':print('VIP大会员用户')
else:print('普通用户')# 输出结果:
VIP大会员用户
- 示例6:
num = 19
if num%2 == 1:print('奇数')
else:print('偶数')# 输出结果:
奇数
num = 19
data = num%2 == 1
if data:print('奇数')
else:print('偶数')# 输出结果:
奇数
- 示例7:
print("开始")
if 5 == 5:print("5等于5")
print("结束")# 使用if条件语句时,如不需要,后面可不接else
练习题
- 提示用户输入用户名和密码,用户名等于"xuanxiaomo"且密码等于"uuu"就输出登录成功;否则输出登录失败。
username = input('请输入用户名:')
password = input('请输入密码:')
if username == 'xuanxiaomo' and password == 'uuu':print('登录成功')
else:print('登录失败')
- 猜数字,提示用户输入一个数字,判断数字如果大于10,就输出猜错了;否则输出猜对了。
num = int(input('请输入一个数字:'))
if num > 10:print('猜错了')
else:print('猜对了')
- 提示用户输入一个数字,判断是否为偶数,是偶数则输出 偶偶偶数,否则输出 奇奇奇数。
num = int(input('请输入一个数字:'))
if num % 2 == 0:print('偶偶偶数')
else:print('奇奇奇数')
8.2 多条件判断
if 条件A:A成立,执行此缩进中的所有代码...
elif 条件B:B成立,执行此缩进中的所有代码...
elif 条件C:C成立,执行此缩进中的所有代码...
else:上述ABC都不成立。
示例1:
num =input('请输入数字:')
data = int(num)
if data >6:print('太大了')
elif data == 6:print('刚好')
else:print('太小了')
示例2:
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:if 条件A1:...else:...
elif 条件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('序号输入错误')
今日总结
- 什么是编码?打开文件时为什么会出现乱码?
- pycharm如何设置文件编码?
- python解释器去打开代码文件时,默认使用编码是什么?如何修改?
- print输入
- 各数据类型格式 以及 相关之间如何实现转换?
- 变量的命名规范
- 用户通过input输的内容均为字符串类型。
- 条件语句。
今日作业
- 谈谈你了解的编码以及为什么会出现乱码的现象?
编码是一种密码本,其中存储着文字和01010的对应关系。乱码的出现时因为文件的存储方式和打开方式不一致导致。另外,如何数据丢失也可能会造成乱码。
- Python 解释器默认编码是什么?如何修改?
Python解释器默认编码:utf-8
通过在文件的顶部设置: # -*- coding:编码 -*- 实现修改
- 用 print 打印出下面内容:
⽂能提笔安天下,
武能上⻢定乾坤.
⼼存谋略何⼈胜,
古今英雄唯是君。
print('文能提笔安天下,')
print('武能上马定乾坤,')
print('心存谋略何人胜,')
print('古今英雄唯是君。')
- 变量名的命名规范和建议?
命名规范:只能以字母、数字和下划线组成,不能以数字作为开头,不能与python中内置关键字重名。建议:长命名用下划线连接、最好做到见名知意
- 如下那个变量名是正确的?
name = '武沛齐' # 正确
_ = 'alex' # 正确
_9 = "老男孩" # 正确
9name = "宝浪" # 错误
oldboy(edu = 666 # 错误
- 设定一个理想数字比如:66,让用户输入数字,如果比66大,则显示猜测的结果大了;如果比66小,则显示猜测的结果小了;只有等于66,显示猜测结果正确。
num = int(input('请输入一个数字:'))
if num > 66:print('猜的数字偏大了')
elif num < 66:print('猜的数字偏小了')
else:print('恭喜猜对了')
- 提示⽤户输入 “爸爸” ,判断⽤户输入的对不对。如果对,提示真聪明,如果不对, 提示你是傻逼么。
name = input('请输入:')
if name == '爸爸':print('真聪明')
else:print('你是傻逼么')
- 写程序,成绩有 ABCDE 5个等级,与分数的对应关系如下。
A 90-100
B 80-89
C 60-79
D 40-59
E 0-39
要求用户输入0-100的数字后,你能正确打印他的对应成绩等级。
nums = int(input('请输入你的分数:'))
if 100 >= nums >= 90:print('A')
elif 90 > nums >= 80:print('B')
elif 80 > nums >= 60:print('C')
elif 60 > nums >= 40:print('D')
elif 40 > nums >= 0:print('E')
else:print('输入有误')
内置关键字重名。建议:长命名用下划线连接、最好做到见名知意
5. 如下那个变量名是正确的?```python
name = '武沛齐' # 正确
_ = 'alex' # 正确
_9 = "老男孩" # 正确
9name = "宝浪" # 错误
oldboy(edu = 666 # 错误
- 设定一个理想数字比如:66,让用户输入数字,如果比66大,则显示猜测的结果大了;如果比66小,则显示猜测的结果小了;只有等于66,显示猜测结果正确。
num = int(input('请输入一个数字:'))
if num > 66:print('猜的数字偏大了')
elif num < 66:print('猜的数字偏小了')
else:print('恭喜猜对了')
- 提示⽤户输入 “爸爸” ,判断⽤户输入的对不对。如果对,提示真聪明,如果不对, 提示你是傻逼么。
name = input('请输入:')
if name == '爸爸':print('真聪明')
else:print('你是傻逼么')
- 写程序,成绩有 ABCDE 5个等级,与分数的对应关系如下。
A 90-100
B 80-89
C 60-79
D 40-59
E 0-39
要求用户输入0-100的数字后,你能正确打印他的对应成绩等级。
nums = int(input('请输入你的分数:'))
if 100 >= nums >= 90:print('A')
elif 90 > nums >= 80:print('B')
elif 80 > nums >= 60:print('C')
elif 60 > nums >= 40:print('D')
elif 40 > nums >= 0:print('E')
else:print('输入有误')
轩小陌的Python笔记-day02 快速上手相关推荐
- 轩小陌的Python笔记-day06 数据类型
day06 数据类型(中) 常见的数据类型: int,整数类型(整形) bool,布尔类型 str,字符串类型 list,列表类型 tuple,元组类型 dict,字典类型 set,集合类型 floa ...
- 轩小陌的Python笔记-day13 匿名函数、生成器、内置函数、推导式
day13 内置函数和推导式 今日概要: 匿名函数 生成器 内置函数 附加:推导式,属于数据类型的知识,内部的高级的用法会涉及到[生成器]和[函数]的内容. 1. 匿名函数 传统的函数的定义包括了:函 ...
- 轩小陌的Python笔记-day25 MySQL入门
第四模块 MySQL数据库 从今天开始将进入第四模块的学习,这个模块就是给大家讲解MySQL数据库. 以前,在开发程序时,我们会把很多的数据和信息存储到某个文件夹中的文件中,例如:user.txt . ...
- 轩小陌的Python笔记-day16 模块二总结
day16 阶段总结 课程目标:对第二模块 "函数和模块" 阶段的知识点进行总结. 课程概要: 知识补充 阶段总结(思维导图) 1. 知识补充 1.1 nolocal关键字 在之前 ...
- 轩小陌的Python笔记-day08 模块一总结
day08 阶段总结和考试题 课程目标:对第一模块 "Python基础" 阶段的知识点进行总结,更好地掌握此模块的相关知识. 课程概要: 代码规范 知识补充 阶段总结(思维导图) ...
- 轩小陌的Python笔记-day28 索引、函数及存储过程
day28 索引和函数及存储过程 课程目标:了解 MySQL 中索引.函数.存储过程.函数.触发器.视图等知识点. 课程概要: 索引 函数 存储过程 视图 触发器 1. 索引 在数据库中索引最核心的作 ...
- 轩小陌的Python笔记-day26 必备SQL语句、表关系及授权
day26 必备SQL和表关系及授权 课程目标:掌握开发中最常见的SQL语句和表关系及授权相关知识点. 课程概要: 必备SQL(8个必备) 表关系 授权 1. 必备SQL语句 上一节讲解了最基础SQL ...
- 轩小陌的Python笔记-day14 自定义模块、第三方模块、内置模块(部分)
day14 模块 课程目标:掌握Python中常用模块的使用方法. 今日概要: 自定义模块(包) 第三方模块 内置模块[1/2] 1. 自定义模块 1.1 模块和包 import hashlibdef ...
- 轩小陌的Python笔记-day05 数据类型
day05 数据类型(上) 接下来的3篇的内容都是讲解数据类型的知识点,常见的数据类型: int,整数类型(整型) bool,布尔类型 str,字符串类型 list,列表类型 tuple,元组类型 d ...
最新文章
- Strom序列化机制
- 怪不的软件开发这么挣钱,原来是有这么多职位
- c#创建可以为空类型
- php实现单选和多选功能,input:checkbox多选框实现单选效果跟radio一样
- junit5和junit4_JUnit 5 –基础
- 怎么做95置信区间图_这种动态的OD图怎么做?简单3步快速搞定
- uefi+guid分区与legacy+mbr分区_WIN10下如何将 MBR 分区转换为 GPT
- java实现支付宝第三方登录_Java 实现QQ第三方登录(附赠:完整代码)
- java多端登录_【Java】一个登录功能也能玩出这么多花样?sa-token带你轻松搞定多地登录、单地登录、同端互斥登录...
- Qt Pro语法总结
- Python模块的导入
- asp静态设置html,ASP生成静态Html文件技术杂谈
- java 打印标签 批量_如何批量打印不同数量的条码标签
- 输出调节2.3——内模控制器设计
- 从壹开始前后端分离【重要】║最全的部署方案 最丰富的错误分析
- 条码打印机打印出白纸怎么回事
- 基于python的dlib库的人脸识别
- oracle怎么查表空间,如何查看oracle所有的表空间
- 强化学习经典model-free方法总结
- nodejs addon binding osg