编程初体验
编码必须要保持:保存和打开一直,否则会乱码。
默认 Python 解释器是以 UTF-8 编码的形式打开文件。如果想要修改 Python 的默认解释器编码,可以这样干:
bash# -*- coding:gbk -*- print("我是隆海")
所有 Python 代码文件的都要以 UTF-8 编码保存和读取。
输出
print("隆海的文档库")
print(" * * ")
print(" * * * * ")
print(" * * * * * * ")
print(" * * * * * * * * ")
print(" * * * * * * * * * * ")
print(" * * * * * * * * * * * * ")
print(" * * * * * * * * * * * * ")
print(" * * * * * * * * * * * * ")
print(" * * * * * * * * * * * * * * ")
print(" * * * * * * * * * * * * * * * * ")
print(" * * * * * * * * * * * * * * * * * * ")
print(" * * * * * * * * * * * * * * * * * * * * ")
print(" * * * * * * * * * * * * * * * * * * * * * * ")
print(" * * * * * * * * * * * * * * * * * * * * * * * * ")
print(" * * * * * * * * * * * * * * * * * * * * * * * * ")
print(" * * * * * * * * * * * * * * * * * * * * * * * * ")
print(" * * * * * * * * * * * * * * * * * * * * * * * * * * ")
print(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * ")
print(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ")
print(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ")
print(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ")
print(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ")
print(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ")
print(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ")
默认 print 在尾部会加换行符,可以传入第二参数 end=' '
想要不换行,则可以这样干
print("隆海的文档库",end="")
print("pythl.com",end="")
输出:
隆海的文档库pythl.com
变量
变量名的规范
三个规范(只要有一条就会报错):
变量名只能由 字母、数字、下划线 组成。
不能以数字开头
不能用 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’]
建议:下划线连接命名(小写),见名知意
输入
输入,可以实现程序和用户之间的交互。
name = input("请输入用户名:")
if name == "longhai":
print("登录成功")
else:
print("登录失败")
data = input(">>>")
print(data)
特别注意:用户输入的任何内容本质上都是字符串。
number1 = input("请输入一个数字:") # "1"
number2 = input("请输入一个数字:") # "2"
value = int(number1) + int(number2)
print(value)
注释
写代码时候,如果想要对某写内容进行注释处理,即:解释器忽略不会按照代码去运行。
单行注释
python# 声明一个name变量 name = "longhai" age = 19 # 这表示当前用户的年龄 注意:键盘快捷键 command + ? 、 control + ?
多行注释
python# 声明一个name变量 # 声明一个name变量 # 声明一个name变量 name = "longhai" """ 多行注释内容 多行注释内容 多行注释内容 """ age = 19
条件语句
基本条件语句
示例 1:
print("开始")
if True:
print("123")
else:
print("456")
print("结束")
# 输出结果
开始
123
结束
示例 2:
num = 19
if num > 10:
print("num变量对应值大于10")
else:
print("num变量对应值不大于10")
示例 3:
username = "longhai"
if username == "longhai" or password == "lh123":
print("VIP大会员用户")
else:
print("普通用户")
多条件判断
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("太小了")
条件嵌套
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("序号输入错误")
基本数据类型
整形(int)
整形,整数。
整型,其实就是以前数学课上讲的整数(不包含小数),在写代码时用于表示整数相关的东西,例如:年龄、存款、尺寸、手机号等。 一般我们提到的:5、18、22、99、… 等整数 在 Python 中都称为是整型,且支持 加/减/乘/除/取余/指数 等操作
字符串(str)
字符串,其实就是我们生活中的文本信息。例如:姓名、地址、自我介绍等。 字符串有一个特点,他必须由引号引起来
单行字符串
str1='longhai'
str1='你很帅哦!'
多行字符串
print("""四川成都市""")
print('''重庆九龙坡''')
对于字符串:
加,两个字符串可以通过加号拼接起来。
pythonprint( "晚生" + "隆海" )
乘,让整形和字符串进行相乘,以实现让字符串重复出现 N 次并拼接起来。
pythonprint(3 * "我想吃饺子")
布尔类型(bool)
布尔类型中共有两个值:True / False
print(1 > 2)
print(False)
print(1 == 1)
print(True)
注意:数字和字符串是无法比较
#以下不可以比较
if '222' > 1:
print('111')
else:
print(222)
#以下可以比较
if '222' == 111:
print('111')
else:
print(222)
类型转换
上文数据类型 int/str/bool 有了初步了解,他们都有自己不同的定义方式。
- int,整型定义时,必须是数字且无引号,例如:5、8、9
- str,字符串定义时,必须用双引号括起来,例如:”中国”、”隆海”、”777”
- bool,布尔值定义时,只能写 True 和 False
不同的数据类型都有不同的功能,例如:整型可以加减乘除 而 字符串只能加(拼接)和乘法。 如果想要做转换可遵循一个基本规则:想转换什么类型就让他包裹一些。
例如:str(666) = "666"是将整型转换为字符串、int(“888”)是将字符串转 888。
三句话搞定类型转换:
其他所有类型转换为布尔类型时,除了 空字符串、0 以为其他都是 True。
字符串转整形时,只有那种 "988" 格式的字符串才可以转换为整形,其他都报错。
想要转换为那种类型,就用这类型的英文包裹一下就行。
pythonstr(...) int(...) bool(...)
数据类型暂时讲这么多,后面章节有详细的其它数据类型介绍
字符串格式化
字符串格式化,使用跟便捷的形式实现字符串的拼接。
%格式化
基本格式化操作
name = "隆海"
# 占位符
# text = "我叫%s,今年18岁" %"隆海"
text = "我叫%s,今年18岁" %name
print(text)
name = "隆海"
age = 18
text = "我叫%s,今年%d岁" %(name,age)
print(text)
message = "%(name)s你什么时候过来呀?%(user)s今天不在呀。" % {"name": "死鬼", "user": "老王"}
print(message) #死鬼你什么时候过来呀?老王今天不在呀。
百分比
text = "兄弟,这个片我已经下载了90%了,居然特么的断网了"
print(text)
text = "%s,这个片我已经下载了90%%了,居然特么的断网了" %"兄弟"
print(text)
# 输出:兄弟,这个片我已经下载了90%了,居然特么的断网了
一旦字符串格式化中存现百分比的显示,请一定要呀加 %% 以实现输出 %。
format(推荐)
text = "我叫{0},今年18岁".format("唐海龙")
print(text)
text = "我叫{0},今年{1}岁".format("唐海龙",18)
print(text)
text = "我叫{0},今年{1}岁,真实的姓名是{0}。".format("唐海龙",18)
print(text)
text = "我叫{name},今年18岁".format(name="唐海龙")
print(text)
text = "我叫{name},今年{age}岁".format(name="唐海龙",age=18)
print(text)
text = "我叫{name},今年{age}岁,真实的姓名是{name}。".format(name="唐海龙",age=18)
print(text)
text = "我叫{0},今年{1}岁"
data1 = text.format("唐海龙",666)
data2 = text.format("隆海",113)
print(data1)
print(data2)
text = "我叫%s,今年%d岁"
data1 = text %("唐海龙",20)
data2 = text %("隆海",84)
print(data1)
print(data2)
f 格式化
到 Python3.6 版本,更便捷。
text = f"嫂子喜欢{'跑步'},跑完之后满身大汗"
print(text)
name = "大大"
age = 18
text = f"嫂子的名字叫{name},今年{age}岁"
print(text)# 嫂子的名字叫大大,今年18岁
# 在Python3.8引入
text = f"嫂子的名字叫喵喵,今年{19 + 2=}岁"
print(text)# 嫂子的名字叫喵喵,今年19 + 2=21岁
name = "longhai"
text = f"我是{ name.upper() },我爱大大"
print(text) # 我是LONGHAI,我爱大大
# 进制转换
v1 = f"嫂子今年{22}岁"
print(v1)
v2 = f"嫂子今年{22:#b}岁"
print(v2)
v3 = f"嫂子今年{22:#o}岁"
print(v3)
v4 = f"嫂子今年{22:#x}岁"
print(v4)
{}中是可以运算和执行方法
运算符
提到运算符,我想大家首先想到的就是加、减、乘、除之类, 本节要系统的跟大家来聊一聊,我们写代码时常见的运算符可以分为 5 种:
算数运算符
运算符 | 描述 | 实例 |
---|---|---|
+ | 加-两个对象相加 | a+b=30 |
- | 减-得到负数或是一个数减去另一个数 | a - b 输出结果-10 |
* | 乘–两个数相乘或是返回一个被重复若干次的字符串 | a *b 输出结果 200 |
/ | 除–x 除以 y | b / a 输出结果 2 |
% | 取模–返回除法的余数 | b % a 输出结果 1 |
** | 幂–返回 x 的 y 次幂 | a**b 为 10 的 20 次方,输出结果 100000000000000000000 |
// | 取整除–返回商的整数部分 | 9//2 输出结果 4 ,9.0//2.0 输出结果 4.0 |
比较运算符
运算符 | 描述 | 实例 |
---|---|---|
== | 等于-比较对象是否相等 | a==b |
!= | 不等于-比较两个对象是否不相等 | |
<> | 不等于-比较两个对象是否不相等 | |
> | 不等于-比较两个对象是否不相等 | |
< | 小于–返回 x 是否小于 y。 所有比较运算符返回 1 表示真,返回 0 表示假。 这分别与特殊的变量 True 和 False 等价。注意,这些变量名的大写。 | |
>= | 大于等于–返回 x 是否大于等于 y。 | |
<= | 小于等于–返回 x 是否小于等于 y。 |
赋值运算符
运算符 | 描述 | 实例 |
---|---|---|
= | 简单的赋值运算符 | c = a+b 将 a+b 的运算结果赋值为 c |
+= | 加法赋值运算符 | c -= a 等效于 c= c- a |
-= | 减法赋值运算符 | c -= a 等效于 c= c- a |
*= | 乘法赋值运算符 | c *= a 等效于 c= c " a |
/= | 除法赋值运算符 | c /= a 等效于 c= c / a |
%= | 取模赋值运算符 | c%= a 等效于 c= c % a |
**= | 幂赋值运算符 | c **= a 等效于 c= c"" a |
//= | 取整除赋值运算符 | c l/= a 等效于 c= cll a |
成员运算符
运算符 | 描述 | 实例 |
---|---|---|
in | 如果在指定的序列中找到值返回 True,否则返回 False。 | |
not in | not in 如果在指定的序列中没有找到值返回 True,否则返回 False。 |
逻辑运算符
运算符 | 描述 | 实例 |
---|---|---|
and | 布尔"或"-如果 x 是 True,它返回 True,否则它返回 y 的计算值。 | |
or | 布尔"或"-如果 x 是 True,它返回 True,否则它返回 y 的计算值。 | |
not | 布尔"非"-如果 x 为 True,返回 False。如果 x 为 False,它返回 True。 |
运算符优先级
运算符的优先级有很多,常见的 3 个如下:
- 算数优先级优先级 大于 比较运算符
- 比较运算符优先级 大于 逻辑运算符
- 逻辑运算符内部三个优先级 not > and > or
述这 3 个优先级从高到低总结:
加减乘除 > 比较 > not and or
。绝招:加括号。