Day02 快速上手
Python最基础的语法知识,利用代码实现基础的的简单的功能。
这里写目录标题
- 初识编码(密码本)
- 编程初体验
- 输出
- 初识数据类型
- 变量
- 注释
- 输入
- 条件语句
1. 编码
计算机中的数据本质上都是0 1代码的组合
在计算机中不论任何数据都会将其转换成01代码存储在硬盘上
在计算机中有很多种的编码形式:
- UTF-8编码
- gbk编码
- ASCII编码
- UNICODE编码
注:以相应的编码形式保存的数据,就必须以对应的编码形式读取。
2. 编程初体验
- 编码必须保持一致。
- Python解释器默认以UTF-8的编码形式打开文件
- 打开代码文件的编码形式可以更改(Python解释器编码修改)
# -*- coding:gbk -*-
# -*- coding:utf-8 -*-
3. 输出
将想要现实的内容显示出来的时候
print("风景美如画!")
print(" * ")
print(" * * ")
print(" * * *")
print(" * * * *")
print(" * * * * *")
print(" * * * * * *")
print("* * * * * * *")
关于输出:
- 默认print在尾部添加换行符
print('看着风景美如画')
print("本想吟诗赠天下")
输出:
看着风景美如画
本想吟诗赠天下
4. 输出练习题
- 输出你的名字
print('Liubing')
- 换行输出
#方式1
print('春眠不觉晓')
print('处处闻啼鸟')
print('夜来风雨声')
print('花落知多少')
5. 数据类型
- int
- str
- bool
5.1 整型(int)
print(6 + 10)
print(10 * 3)
print(10 - 3)
print(10 / 3)
print(10 % 3)
print(2 ** 4)
5.2 字符串(str)
print("我是Alex")
"我是"ALex"
print('我是"')
#三引号可以表示多行数据
"""中国"""
'''中国'''
print("""中国
dsdsdsd
saasdsadsadasdsa
adas
dadas
dasd""")
- 加,字符串可以通过+号拼接起来
"Alex"+"是金角大王"
"Alex是金角大王"
- 乘,让整型和字符串乘起来可以实现让字符串出现N次的效果
"我叫你一生你敢答应吗"*3
5.3 布尔类型(Bool)
判断、比较
-
True
-
False
1>2
1==1
补充:
可以进行比较:
1 == 1
1 > 2
1 == "alex"
不可进行比较:
1 > "alex"
5.4 类型转换
上文数据类型int/str/bool有了初步了解,他们都有自己不同的定义方式。
- int,整型定义时,必须是数字且无引号,例如:5、8、9
- str,字符串定义时,必须用双引号括起来,例如:““中国””、“武沛齐"、“666"
- bool,布尔值定义时,只能写True和False
不同的数据类型都有不同的功能,例如:整型可以加减乘除而字符串只能加(拼接)和乘法。如果想要做转换可遵循一个基本规则:想转换什么类型就让他包裹一下 :类型名(要转换的数据)。
例如: str(666)="666"是将整型转换为字符串、int(“888”)是将字符串转换为整型数字
5.4.1 转换为整型
#字符串转换为整型(渡可渡之人)
int("666")
int("999")
"6"+"9"
print("6"+"9") #结果是 69
print(int("6")+int("9")) #结果是15
int("ken是SB")#报错
#布尔类型转换为整型
int(True)==1
int(False)==0
5.4.2 转换为字符串
#整型转换为字符串
所有的整型数据都可以转换为字符串类型
str("111")
str("222")
#布尔类型转换为字符串
str(True)=="True"
str(False)=="False"
5.4.3 转换为布尔类型
#整型转换为布尔类型
所有的整形数据(除了0以为)转换为布尔类型的值都为真(True)
bool(111)==True
bool(-1)==True
bool(0)==False
#字符串转换为布尔类型
只有""即空字符串的值为False,其余皆为真
bool("")==False
bool(" ")==True
bool("dsad")== True
6. 练习题
- 计算整型50乘以10再除以5的商并使用print输出。
- 判断整型8是否大于10的结果并使用print输出。
- 计算整型30除以2得到的余数并使用print输出。
- 使用字符串乘法实现把字符串"“我爱我的祖国”"创建三遍并拼接起来最终使用print
- 判断字符串""wupeiqir和"alex是否相等的结果并使用print输出。
- 判断整型666和整型666是否相等的结果并使用print输出。
- 判断字符串"666""和整型666是否相等的结果并使用print输出。
- 看代码写结果(禁止运行代码)∶
print(int("100") * 3) # 300
print(int("-123") + int("88")) # -35
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
print(50 * 10 / 5)
print(8 > 10)
print(30 % 2)
print(3 * "我爱我的祖国")
print("nidie" == "nibaba")
print(666 == 666)
print("666" == 666)
注:类型转换不是改变原来的值,实际在底层是新创建了一个值。
7. 变量及其命名规范
变量,可以变化的量,用某个名称来代替一个不确定的值。格式【变量名 = 值】。即通过变量的名字来对对应的数值进行操作。
name = "张三丰"
print(name)#张三丰
age = 18
name = "John"
flag = 1 > 18
address = "中国" + "北京"
addr = address + name + age
print(addr)
print(flag)
7.1 命名规范
- 变量名只能由字母、数字、下划线组成。
- 不能以数字开头。
- 不能以Python内置关键字来命名变量。
import keyword
print(keyword.kwlist)
['False', 'None', 'True', 'and', 'as','assert','break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from','global','if','import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
两个建议:
- 下划线连接命名
bro_name = "Ken"
- 见名知意
age = 18
name = "John"
练习题
name-"吉诺比利"
nameo = "帕克"
name_1 = "邓肯"
_coach = "波波维奇"
_ = "卡哇伊"
1_year m "1990" #错误
year_1_ = "1990"
_1_year = "1990
nba-team = "马刺" #错误
new * name = "伦纳德" #错误
7.2 变量内存指向关系
即:内存指向(变量在内存中是怎么存储的)
情景一
name='John'
在内存中开辟一块区域保存字符串“John”,而变量名则指向这块区域
情景二
name = "John"
name = "Alex"
在计算机内存中创建一块区域存储“John”字符串,此时name指向John所在区域,然后又在内存中创建了一块保存“Alex”的内存区域,于是name则指向了Alex所在区域,而不再指向John区域(无人指向的数据会被标记为垃圾,由解释器自动回收)
情景三
name = "John"
New_name = name
在内存中开辟一块区域保存字符串“John”,而变量名name则指向这块区域。New_name指向name变量,而name变量名则指向“John所在区域”,所以New_name也指向了John所在内存区域。
情景四
name = "Ken"
New_name = name
name = John
在计算机中创建一块区域来保存”John“,name则指向这块区域,然后New_name则指向name所指的区域,然后创建了一块区域来存储“Ken”,再将name指向Ken所在区域。
情景五
num = 18
age = str(18)
内存中开辟一块区域来存储整型18,num变量名则指向这块区域。然后通过类型转换依据整型18再在内存中创建一个字符串’18’,age变量则指向保存这个字符串的内存区域。
练习题
- 1.看代码结果
John_length = 3
ken_length = 18
total = John_lengch + ken_length
print (total)
- 2.按要求写代码
#假设age为小明的年龄
age = 18
#问:已知小李比小明大3岁,计算小李年龄赋值给ming_age变量并输出。
#问:已知大刘比小明和小李年龄的和还要大5岁,计算大刘的年龄赋值给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)
8. 注释
注释:
-
对代码进行文字描述、解释,方便后期理解
-
注释不会被执行
-
便于了解对对应的代码块
-
便于发现问题
-
单行注释
# 单行注释只在本行有效
# 快捷键:Ctrl+?
- 多行注释
"""
多行注释
多行注释
多行注释
"""
注:如果三引号前面有一个变量去接收则三引号内部的字符会变成一个字符串,负责就只是注释。
9. 输入
可以实现程序与用户之间的交互
# 提示用户输入用户名
# 将用户的输入赋值给name变量
name = input("请输入用户名:")
if name == "John" :
print("登陆成功")
else:
print("登陆失败")
**注意:**用户输入的任何内容本质上都是字符串。
1.提示输入姓名,然后给姓名后面拼接一个"烧饼",提示输入姓名,然后给姓名后面拼接一个"“烧饼”,最终打印结果。
name = input("please input a name:")
print(namee + "烧饼")
test = name + "烧饼"
print(text)
2.提示输入姓名/位置/行为,然后做拼接并打印:xx在xx做xx。
name = input("please input name: ")
position = input("please input a position: ")
action = input("please input a action: ")
text = name + position + action
print(text)
3.提示输入两个数字,计算两个数的和。
num_1 = input("请输入数字1; ")
num_2 = input("请输入数字2; ")
sum = int(num_1) + int(num_2)
print("两数的和为:" + sum)
10. 基本条件语句
if 条件:
若条件成立需执行的代码
.................
若条件成立需执行的代码
else:
若条件不成立需执行的代码
.................
若条件不成立需执行的代码
name = input("请输入用户名:")
if name == 'john':
print("帅哥")
else:
print("一般般吧")
- 缩进一致问题:若缩进不一致可能会导致程序报错
name = input("请输入用户名:")
if name == 'john':
print("帅哥")
print("帅哥")
else:
print("一般般吧")
8.1 基本条件语句
- 示例1
print("start")
if True:
print("123")
else:
print("456")
print("end")
# 输出结果: ?
- 示例2
print("start")
if 5==5:
print("123")
else:
print("456")
print("end")
# 输出结果: ?
- 示例3
print("start")
num = 19
if num > 10:
print("num>10")
else:
print("num<10")
print("end")
# 输出结果: ?
- 示例4
name = input("请输入用户名:")
password = input("请输入密码:")
if name == "john" and password == "123":
print("登陆成功")
else:
print("登录失败")
- 示例5
name = input("请输入用户名:")
if name == "john" or name == "ken":
print("登陆成功")
else:
print("登录失败")
- 示例6
num = 15
if num % 2 == 1:
print("num是奇数")
else:
print("num是偶数")
- 示例7
if 条件成立:
执行语句
if 5==5:
print("5等于5")
print("end")
8.2 基本条件语句练习题
1.提示用户输入用户名和密码,用户名等于"wupeiqi""且密码等于"uuu"就输出登录成功﹔否则输出登录失败。
2.猜数字,提示用户输入一个数字,判断数字如果大于10,就输出猜错了﹔否则输出猜对了。
3.提示用户输入一个数字,判断是否为偶数,是偶数则输出偶偶偶数,否则输出奇奇奇数。
8.3 多条件判断
if 条件A:
A成立,执行此处代码块
....
elif 条件B:
B成立,执行此处代码块
....
.....
elif 条件N:
N成立,执行此处代码块
....
else:
上述A-N都不成立,执行此处代码块
num = input("请输入数字")
data = int(num)
if data>6:
print ("太大了")
elif data==6:
print ("刚刚好")
else:
print("太小了")
8.4 条件的嵌套
if 条件:
代码块
elif 条件:
代码块
....
else:
代码块
if 条件:
if 条件:
...
else:
...
elif 条件:
....
# 移动客服
print("欢迎致电10086,我们提供了如下服务:1.话费相关;2.业务办理;3.人工服务")
choice = input("请选择您需要的服务:")
if choice == "1":
print("话费相关业务")
cost = input("查询话费请按1,续交话费请按2")
if cost == "1":
print("您的话费余额为:....")
elif cost == "2":
print("请输入您需要续交的话费金额")
elif choice == "2":
print("业务办理")
elif choice == "3":
print("人工服务")
else:
print("序号错误")
总结
总结
- 什么是编码?打开文件时为什么会出现乱码?
- pycharm 如何设置文件编码?
- python解释器去打开代码文件时,默认使用编码是什么?如何修改?
- print输出
- 各数据类型格式以及相关之间如何实现转换?
- 变量的命名规范
- 用户通过input输的内容均为字符串类型。
- 条件语句。
作业
1.谈谈你了解的编码以及为什么会出现乱码的现象?
- Python解释器默认编码是什么?
3.如何修改?用print打印出下面内容:
文能提笔安天下,
武能上马定乾坤。
心存谋略何人胜,
古今英雄唯是君。
4.变量名的命名规范和建议?
5.如下那个变量名是正确的?
name="john"
_ = "ken"
_9 =老男孩
9name ="宝浪"
old(boyedu = 666
6.设定一个理想数字比如: 66,让用户输入数字,如果比66大,则显示猜测的结果大了;如果比566小,则显示猜测的结果小了;只有等于66,显示猜测结果正确。
提示用户输入"爸爸",判断用户输入的对不对。如果对,提示真聪明,如果不对,提示不对。
写程序,成绩有ABCDE5个等级,与分数的对应关系如下:
A 90-100
B 80-89
C 60-79
D 40-59
E 0-39
要求用户输入0-100的数字后,你能正确打印他的对应成绩等级.