轩小陌的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 010101010
    gbk编码:
        轩     ->      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='')

# 输出结果
看这风景美如画,本想吟诗赠天下

练习题

  1. 使用 print 输出自己的姓名
print('轩小陌')
  1. 使用 print 输出
    春眠不觉晓,
    处处闻啼鸟,
    夜来风雨声,
    花落知多少。
print('春眠不觉晓,')
print('处处闻啼鸟,')
print('夜来风雨声,')
print('花落知多少。')
  1. 使用 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 ’ 格式的字符串才可以转换为整型,其他都报错。
  • 想要转换为哪种类型,就用这种类型的英文包裹一下。

练习题

  1. 计算整型50乘以10再除以5的商并使用print输出。
print(50 * 10 / 5)
  1. 判断整型8是否大于10的结果并使用print输出。
print(8 > 10)
  1. 计算整型30除以2得到的余数并使用print输出。
print(30 % 2)
  1. 使用字符串乘法实现 把字符串”我爱我的祖国”创建三遍并拼接起来最终使用print输出。
print('我爱我的祖国' * 3)
  1. 判断 字符串”xuanxiaomo”和”hjj”是否相等的结果并使用print输出。
print('xuanxiaomo' == 'hjj')
  1. 判断 整型666和整型666是否相等的结果并使用print输出。
print(666 == 666)
  1. 判断 字符串”666”和整型666是否相等的结果并使用print输出。
print('666' == 666)
  1. 看代码写结果(禁止运行代码):
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变量指向保存这个字符串的内存区域。
在这里插入图片描述
至此,关于变量的内存相关的说明已讲完,对于初学者,关于变量的内存管理目前只需了解以上知识点即可,更多关于内存管理、垃圾回收、驻留机制等问题在后面的课程中会讲解。

练习题

  1. 看代码结果

    alex_length = 3
    wupeiqi_length = 18
    total = alex_length + wupeiqi_length
    print(total)
    
    # 输出结果:
    21
    
  2. 按要求写代码

    # 假设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)
    
  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) 
    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)

特别注意:用户输入的任何内容本质上都是字符串。

练习题

  1. 提示输入姓名,然后给姓名后面拼接一个“烧饼”,最终打印结果。

    name = input("请输入用户名:")
    text = name + "烧饼"
    print(text)
    
  2. 提示输入姓名 / 位置 / 行为,然后做拼接并打印:xx 在 xx 做 xx 。

    name = input("请输入用户名:")
    address = input("请输入位置:")
    action = input("请输入行为:")
    text = name + "在" + address + action
    print(text)
    
  3. 提示输入两个数字,计算两个数的和。

    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

练习题

  1. 提示用户输入用户名和密码,用户名等于"xuanxiaomo"且密码等于"uuu"就输出登录成功;否则输出登录失败。
username = input('请输入用户名:')
password = input('请输入密码:')
if username == 'xuanxiaomo' and password == 'uuu':
    print('登录成功')
else:
    print('登录失败')
  1. 猜数字,提示用户输入一个数字,判断数字如果大于10,就输出猜错了;否则输出猜对了。
num = int(input('请输入一个数字:'))
if num > 10:
    print('猜错了')
else:
    print('猜对了')
  1. 提示用户输入一个数字,判断是否为偶数,是偶数则输出 偶偶偶数,否则输出 奇奇奇数。
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('序号输入错误')

今日总结

  1. 什么是编码?打开文件时为什么会出现乱码?
  2. pycharm如何设置文件编码?
  3. python解释器去打开代码文件时,默认使用编码是什么?如何修改?
  4. print输入
  5. 各数据类型格式 以及 相关之间如何实现转换?
  6. 变量的命名规范
  7. 用户通过input输的内容均为字符串类型。
  8. 条件语句。

今日作业

  1. 谈谈你了解的编码以及为什么会出现乱码的现象?
编码是一种密码本,其中存储着文字和01010的对应关系。乱码的出现时因为文件的存储方式和打开方式不一致导致。另外,如何数据丢失也可能会造成乱码。
  1. Python 解释器默认编码是什么?如何修改?
Python解释器默认编码:utf-8
通过在文件的顶部设置: # -*- coding:编码 -*- 实现修改
  1. 用 print 打印出下面内容:
⽂能提笔安天下,
武能上⻢定乾坤.
⼼存谋略何⼈胜,
古今英雄唯是君。
print('文能提笔安天下,')
print('武能上马定乾坤,')
print('心存谋略何人胜,')
print('古今英雄唯是君。')
  1. 变量名的命名规范和建议?
命名规范:只能以字母、数字和下划线组成,不能以数字作为开头,不能与python中内置关键字重名。建议:长命名用下划线连接、最好做到见名知意
  1. 如下那个变量名是正确的?
name = '武沛齐'		# 正确
_ = 'alex'			  # 正确
_9 = "老男孩"			# 正确
9name = "宝浪"		 # 错误 
oldboy(edu = 666	   # 错误
  1. 设定一个理想数字比如:66,让用户输入数字,如果比66大,则显示猜测的结果大了;如果比66小,则显示猜测的结果小了;只有等于66,显示猜测结果正确。
num = int(input('请输入一个数字:'))
if num > 66:
    print('猜的数字偏大了')
elif num < 66:
    print('猜的数字偏小了')
else:
    print('恭喜猜对了')
  1. 提示⽤户输入 “爸爸” ,判断⽤户输入的对不对。如果对,提示真聪明,如果不对, 提示你是傻逼么。
name = input('请输入:')
if name == '爸爸':
    print('真聪明')
else:
    print('你是傻逼么')
  1. 写程序,成绩有 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	   # 错误
  1. 设定一个理想数字比如:66,让用户输入数字,如果比66大,则显示猜测的结果大了;如果比66小,则显示猜测的结果小了;只有等于66,显示猜测结果正确。
num = int(input('请输入一个数字:'))
if num > 66:
    print('猜的数字偏大了')
elif num < 66:
    print('猜的数字偏小了')
else:
    print('恭喜猜对了')
  1. 提示⽤户输入 “爸爸” ,判断⽤户输入的对不对。如果对,提示真聪明,如果不对, 提示你是傻逼么。
name = input('请输入:')
if name == '爸爸':
    print('真聪明')
else:
    print('你是傻逼么')
  1. 写程序,成绩有 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('输入有误')
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值