目录
变量
变量是在计算机语言中可变的量,在使用前必须赋值,使用“=”来赋值,=左边是变量名,=右边是存储在变量中的值,语法:变量名=值
# 定义一个变量名name,值为字符串“肖战”
name = "肖战"
# 定义一个变量名age,值为30
age = 30
# print中为变量名,则输出变量的值
print("演员"name,age"岁了")
在编写代码时,通常要使用到注释,有单行注释和多行注释,语法:
#单行注释
# ctrl+/:快速注释一行代码
'''多行注释
多行注释
'''
"""多行注释
多行注释
"""
交换两个变量的值:
a = 10
b = 20
c = a #c:10
a = b #a:20
b = c #b:10
print(a,b)# 如果一个print输出两个变量的值,两个变量要用,隔开
变量的命名
标识符
- 可由字母、下划线、数字组成 (fromNo12、my_Boolean、Obj2、mylnt)√
- 不能以数字开头 ( 2ndObj)×
- 不能用纯数字 (17)×
- 不能是括号以及各种特殊符号(fromno(13)、my-Boolean) ×
- 不能与关键字重名(True、False)×
- 一般不用中文
关键字
#查看python中的关键字
import keyword #导入包
print(keyword.kwlist)
'''
python中的关键字:
False、None、True、and、as、assert、async、await、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
'''
变量的命名规则
pyhton中的标识符是区分大小写的,Andy ≠ andy。如果变量名用多个单词组成(命名习惯如下):
① 每个单词都使用小写字母;
② 单词与单词之间使用_下划线连接;
③ 变量名不会所有字母都大写
例:
一般:first_name、last_name
小驼峰式命名:fisrtName、lastName(只有第二个单词首字母大写)
大驼峰式命名:FirstName、LastName(每个单词的首字母都大写)
变量的类型
数字型
- 整型:int
- 浮点型:float
- 布尔型:bool(True真、False假)
- 复数型:complex(主要用于科学计算,如平面场问题、波动问题、电感电容等问题)
非数字型
- 字符串:str(string)
- 列表:list
- 元组:tuple
- 集合:set
- 字典:dict(dictionary)
None:代表具体类型待定,不确定具体类型(空)
'''
例:
姓名:肖战
年龄:30岁
性别:男
身高:183.6米
是否为学生:否(False)
'''
name = "肖战"#str
age = 32 #int
sex = "男"#str
height = 183.6 #float
isStudent = False #bool
print(name,age,sex,height,isStudent)
# 变量赋值的时候,=右边是什么数据类型,变量就是什么数据类型
一个数字如果用引号引起来,就是字符串而不是数字:
a = 10 #数字10
b = "10" #字符串,一个字符串是1,一个字符串是0
不同类型转化
- 转化为字符串:str(要转化的变量或值)
- 转化为整数:int(要转化的变量或值)
- 转化为浮点数:float(要转化的变量或值)
例1:a = "123",b = 456
把a转化成字符串和b相加,输出123456
把b转化成整型和a相加
a = "123"
b = 456
print(a + str(b))
print(int(a) + b)
例2:把一个float类型的小数点去掉只保留整数
f = 3.5
print(int(f))#只要把一个浮点数用int()转化为一个整数,小数点就会去掉
例3:把一个float类型小数点去掉,四舍五入后保留整数。
任意两个数字/,结果+0.5,只保留整数位,就是对一个小数四舍五入取整的结果。
a = 5
b = 2
print(a / b)
print(int(a / b))#不四舍五入
print(int(a / b + 0.5))#四舍五入
变量计算
1、数字型变量可以直接用运算符计算,True代表1,False代表0
i = 10
f = 10.5
b1 = True
print(i + f)
print(i + b1)
print(f + b1)
例:超市买苹果,苹果的价格是8.5元/斤,买了7.5斤苹果,计算付款金额。
price = 8.5
weight = 7.5
money = price * weight
print(money)
如果买10斤,就反5元,计算付款金额
price1 = 8.5
weight1 = 10
money1 = price1 * weight1
money1 = money1 - 5 # 变量定义之后,再=赋值,只是改变变量的值
print(money1)
2、字符串计算:① 字符串可以使用 + 拼接;
② 字符串可以和整数 *;
③ 字符串和字符串、字符串和数字不能 - /
str1 = "你好"
str2 = "肖战"
str3 = str1 + str2
str4 = str2 * 5
print(str3,str4)
3、不同类型变量计算
a = True
b = False
c = "你好"
d = 3.14
e = 5
print(a + b)
# print(c + d) 不能直接相加
print(c * e)
print(d * b)
变量的输入输出
input函数可以实现用户从键盘输入变量的值,变量 = input("提示信息:")
name = input("请输入姓名:") #当代码执行到input就停止,等待用户通过键盘输入
print(name)# 如果用户通过键盘输入了 肖战,name的值就是 肖战
age = input("请输入年龄:")
print(age)# 如果用户输入的是32,实际是字符串“32”
input输入的任何值(包括数字)都是字符串。如果用户需要输入数字,可以通过类型转换函数将类型转化为数字,只要把input输入的结果用数据类型转化的方式int(),float()即可。
# 方法一:
a = input("请输入第一个数字:")
b = input("请输入第二个数字:")
print(int(a) + int(b))
# 方法二:
a = int(input("请输入第一个数字:"))
b = int(input("请输入第二个数字:"))
print(a + b)
例: 收银员输入苹果的价格,单位:元/斤
收银员输入用户购买苹果的重量,单位:斤
计算并输出付款金额
price = float(input("请输入苹果的价格:"))
weight = float(input("请输入用户购买苹果的重量:"))
print(price * weight)
print函数默认会输出一个回车换行,有多条print函数则会在多行输出。
使用end=""可以将多条print输出到一行,去掉默认的回车换行:print("要输出的字符串",end="")
print("hello")#print在输出之后,会自动添加一个回车换行
print("肖战")
print("hello",end="")#print输出之后,不会自动添加回车换行
print("肖战")
转义字符
有些字符不方便通过键盘直接输入,会用到转义字符:
print("我\t你")#tab横向制表符
print("我\n你")#enter换行
要输出 \,需要写\\
要输出 ",需要写 \"
要输出 ',需要写 \'
要输出 \n,需要在字符串外加 r:print(r"我\n你")
print("我\\你")
print("我\"你")
print("我\'你")
print(r"我\n你")#如果在字符串外加r,代表字符串不转义
格式化输出
格式化操作符:%
在Python字符串中如果有%,就叫格式化字符串。%可以把字符串和字符串以及数字和其他类型通过print拼接成一个字符串显示出来。
- %s:格式化字符串
- %d:格式化整数
- %06:输出6位整数,不足用0补全
- %f:格式化浮点数,%.2f表示只显示小数点后两位(%f默认6位小数)
- 要输出%,需写%%
语法:
print("格式化字符串"% 变量1)
print("格式化字符串"%(变量1,变量2...))#前面有几个%,后面就有几个变量
name = "肖战"
age = 32
print("姓名:%s,年龄%d岁" %(name,age))
f = 3.14
str1 = "圆周率是"
print("%s%f" %(str1,f))
print("%s%.2f" %(str1,f))
例1: 格式化字符串,输出名片。在控制台依次提示用户输入:公司、姓名、电话、邮箱,输出结果:
*********************
公司名称:仲夏之月
姓名:肖战
电话:19911005
邮箱:zhan.xiao@xz.com
*********************
company = input("请输入公司名称:")
name = input("请输入姓名:")
tel = input("请输入电话号码:")
mail = input("请输入邮箱:")
print("*" * 20)
print("公司名称:%s" % company)
print("姓名:%s" % name)
print("电话:%s" % tel)
print("邮箱:%s" % mail)
print("*" * 20)
例2:格式化输出
- 定义字符串变量 name = "肖战",输出:我的名字叫肖战,请多多关照!
- 定义整数变量 num = 1,输出:我的工号是000001
- 定义小数 price = 8.5、weight= 5,输出:苹果单价8.5元/斤,购买了5.00斤,需要支付42.5元
- 定义一个小数 scale = 10.01,输出:数据是10.01%
name1 = "肖战"
print("我的名字叫%s,请多多关照!" % name1)
num = 1
print("我的工号是%06d" % num)
price = 8.5
weight = 5
print("苹果单价%.1f元/斤,购买了%.2f斤,需要支付%.1f元" % (price,weight,price * weight))
scale = 10.01
print("数据是%.2f%%" % scale)
运算符
算术运算符
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
// | 整除 |
% | 取余 |
** | 幂 |
优先级:**最高,* / // %中间,+ -最低
比较运算符
> | 大于 |
>= | 大于等于 |
< | 小于 |
<= | 小于等于 |
== | 等于 |
!= | 不等于 |
逻辑运算符
and(与) | 条件1 and 条件2 两个条件同事满足,返回True 只要有一个不满足,就返回False |
or(或) | 条件1 or 条件2 两个条件只要有一个满足,返回True 两个条件都不满足,返回False |
not(非) | not 条件,条件求反 |
赋值运算符
= | c = 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 **= a 等效于 c = c ** a |
运算符优先级:算术运算符 > 比较运算符 > 赋值运算符 > 逻辑运算符
优先级可以通过 () 改变,() 优先级最高
if 判断
定义:如果条件满足,才能做某件事情;如果条件不满足,就做另外一件事情,或者什么也不做。(条件只有满足和不满足两个结果)
单分支
只使用 if,语法:
'''
if 要判断的条件:
条件成立时,要做的事情
'''
a = 10
if a < 3:
print("a < 3") #这个print和if是一个代码块
print("hello") #这里的print和上面的if没有关系
占位符:pass,为避免语法报错,必须写代码,还没确定写什么时候可以使用pass占位符
a = 10
if a > 5:
pass
print("hello")
双分支
使用 if 和 else,语法:
'''
if 要判断的条件:
条件成立时,要做的事情
else:
条件不成立时,要做的事情
# if 和 else 要对齐,else必须放到if后面,不能单独使用
'''
例:登录判断
name的值为通过input输入的登录账号
passwd的值为通过input输入的登录密码
只有name的值为"肖战",并且passwd的值为“911005”,显示“登录成功”,否则显示“登录失败”
name = input("请输入账号:")
passwd = input("请输入密码:")
if name == "肖战" and passwd == "911005":
print("登录成功")
else:
print("登录失败")
多分支
使用场景:有多个条件,不同的条件要执行不同的代码,语法:
'''
if 条件1:
条件1成立时,要做的事情
elif 条件2:
条件2成立时,要做的事情
elif 条件3:
条件3成立时,要做的事情
else:
所有条件不成立时,要做的事情
注意:elif和else要和if对齐,elif和else都不能单独存在,必须在if后面
'''
例:判断正负数
a = int(input("请输入一个整数:"))
if a > 0:
print("正数")
elif a == 0:
print("既不是正数,也不是负数")
elif a < 0:
print("负数")
if 嵌套
'''
语法
if 条件:
if 条件:
要执行的代码
else:
要执行的代码
else:
要执行的代码
只有最外面的if条件满足,才会执行嵌套在里面的if
'''
例1:判断0到100以内的任意一个数字是否能被3整除
a = int(input("请输入一个整数:"))
if a > 0 and a <= 100: #先判断这个数字是否在0到100之内
if a % 3 == 0 : #如果条件满足,再判断是否能被3整除
print("能被3整除")
else:
print("不能被3整除")
else:
print("不在0到100之内")
例2:name的值为通过input函数输入的字符串,如果name的值为“魏无羡”
通过input输入age的值,如果age大于等于23显示“夷陵老祖”
如果age小于23小于30显示“羡羡”
如果name的值不为“魏无羡”,显示“姓名错误”
name = input("请输入姓名:")
if name == "魏无羡" :
age = int(input("请输入年龄:"))
if age >= 23:
print("夷陵老祖")
else:
print("羡羡")
else:
print("姓名错误")
例3:计算器
num1 = 通过input函数输入的任意数字
num2 = 通过input函数输入的任意数字
a = 通过input函数输入 + - * / 中的任意一个字符
如果a的值为+,显示num1和num2相加的结果
如果a的值为-,显示num1和num2相减的结果
如果a的值为*,显示num1和num2相乘的结果
如果a的值为/,显示num1和num2相除的结果
num1 = int(input("请输入num1:"))
num2 = int(input("请输入num2:"))
a = input("请输入运算符:")
if a == "+":
print(num1 + num2)
elif a == "-":
print(num1 - num2)
elif a == "*":
print(num1 * num2)
elif a == "/":
if num2 != 0:
print(num1 / num2)#判断除数
else:
print("除数不能为0")
else:
print("a的值必须为 + - * /")#判断运算符
随机数
在 Python 中,要使用随机数,首先需要导入随机数的模块,import random。导入模块后,调用函数 randint 生成一个随机数。
random.randint(a,b):返回[a,b]之间的整数,包含a 和 b,a 为开始范围,b为终止返回,语法:
import random
a = random.randint(10,100)#定义一个变量a,来存放随机数(10~100之间的随机数,包含10和100)
print(a)
例1:猜拳游戏
1代表石头、2代表剪刀、3代表布
玩家从控制台输入要出的拳
电脑随机出拳(1或2或3),比较胜负
import random
player = input("请出拳:")
pc = random.randint(1, 3) #需要把数字1、2、3转化为字符串
a = None #变量a存放数字转化为字符串的结果
if pc == 1:
a = "石头"
elif pc == 2:
a = "剪刀"
else:
a = "布"
#胜负判断
if (player == "石头" and a == "布") or (player == "剪刀" and a == "石头") or (player == "布" and a == "剪刀"):
print("玩家出了%s,电脑出了%s,电脑获胜" % (player, a))
elif (player == "石头" and a == "剪刀") or (player == "剪刀" and a == "布") or (player == "布" and a == "石头"):
print("玩家出了%s,电脑出了%s,玩家获胜" % (player, a))
elif player != "石头" and player != "剪刀" and player != "布":
print("请规范出拳!")
else:
print("玩家出了%s,电脑出了%s,平局" % (player, a))
例2:随机生成人名,1代表肖战,2代表时影,3代表肖春生,4代表顾一野,5代表顾魏,6代表魏无羡
import random
name = random.randint(1,6)
if name == 1:
print("肖战")
elif name == 2:
print("时影")
elif name == 3:
print("肖春生")
elif name == 4:
print("顾一野")
elif name == 5:
print("顾魏")
else:
print("魏无羡")