目录
前言
print 输出
变量中的数据类型
转义字符
input输入
注释符
格式化输出
运算符
条件判断
循环
random模块
前言
Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python 由 Guido van Rossum 于 1989 年底发明,第一个公开发行版发行于 1991 年。官方宣布,2020 年 1 月 1 日, 停止 Python 2 的更新。Python 2.7 被确定为最后一个 Python 2.x 版本。
所以接下来的都是基于python3.x进行的学习,最近公司不是很忙,所以想把之前学习的python好好整理一下发布到csdn来。特别提醒:python是世界上最好的语言 😁
python
-
Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。
-
Python 是交互式语言: 这意味着,您可以在一个 Python 提示符 >>> 后直接执行代码。
-
Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。
print 输出
- python中单引号和双引号使用完全相同
- python中有着严格的语法格式,注意该缩进的一定要缩进
- print输出后默认会进行换行
1. 简单输出
print (“hello python”) 将数据输出到屏幕,输出字符串要加引号(单引号和双引号都可以)
print('xzc','df') ,起空格的作用
print ('xzc'+'df') +起字符串拼接的作用
2. .center居中输出
print('欢迎来到商店管理系统' .center(20,'—')) #字居中显示总共占20个字符,不够用-代替
变量中的数据类型
变量用来存储数据,那么大家有没有想过,我们应该让变量占用多大空间,保存什么样的数据呢?例如,我们要运送一台电脑,大卡车和小轿车都可以完成,但是,如果使用大卡车运送一台电脑,显然有点小题大做,浪费了大卡车的空间。
同理,如果使用变量存储数据时,为了更充分利用内存空间,我们可以为变量指定不同的数据类型。python中常见的数据类型如下
(1)布尔类型是特殊的整型,它的值只有两个,分别是True和False。如果将布尔值进行数值运算,True会被当作整型1,False会被当作整型0。
(2)字符串被定义为一个字符集合,它被引号所包含,引号可以是单引号、双引号或者三引号(三个连续的单引号或者双引号)。字符串具有索引规则,第1个字符的索引是0,第2个字符的索引是1,以此类推。下面是字符串的示例代码:
string_one = 'Python'
string_two = "Python"
string_three = '''Python'''
其他的列表、元组、字典以后会说到。
我们可以使用 type(变量名称) 来查看变量的数据类型
数据类型转换
有时候数据类型之间需要进行转换,转换方式如下
int() 转换为整数
float() 浮点数
str() 字符串
转义字符
python中使用 "\" 作为转义字符,使得字符失去原来的意义。如下对双引号进行转义
print("23\"") #输出 23"
其他的转义字符如下
- \n :回车,相当于换行
- r"xx\xx":在字符串前面添加一个r,表示原始字符串不会发生转义
print("hello\nnihao")
print(r"hello\"nihao")
print(r"hello\nnihao")
b函数:b就是bytes,二进制的意思。bytes主要是给计算机看的,string主要是给人看的
a = b"df"
b = b"xcc"
print(a + b)
print(type(b)) #打印数据类型
input输入
有时候程序在运行中的时候需要我们手动输入数据传进去,这是就需要用到input方法。
name1 = input("请输入你的名字:") #读取准备输入的数据(输入)
name2 = input("请输入她的名字:")
print('你们是:' + name1,name2)
输入的数据类型默认为字符串,即此时name1和name2的数据类型默认为字符串类型,如果需要转换为别的数据类型则需要进行类型转换
注释符
- # 单行注释符
- python 中多行注释使用三个单引号(''')或三个双引号(""")
格式化输出
有时候需要在一个很长的字符串中添加一个变量。则需要用到格式化输出法。介绍三种常用的格式化输出方法
- %s
- format
- f"xxx{变量}xx"
1. %s
%s,s代表string字符串的意思,就是说待会这里要放一个字符串类型的变量。如果要放数字类型的变量的话就%d,以此类推。如下,用了float类型转换保留了两位小数
name = input("请输入用户名:")
age = 23
print("欢迎%s用户登录,他今年%d岁了" %(name,age)) #这里%d也可以直接用%s
#%0.2f 为浮点型并保留两位小数,input输入的数据为字符串,所以需要先转类型
weight = float(input('请输入您的体重:'))
height = float(input('请输入您的身高:'))
print('您的身高为了%0.2f, 体重为%0.2f' %(height,weight))
2. format
此方法的使用格式为
"xxxxxxxx{}xxx" .foramt(变量名)
name = 'xcc'
age =23
weight = 105
print('我的名字是{}我的年龄是{}我的体重是{}' .format(name,age,weight))
#保留两位小数
print('我总共花了{:.2f}元钱!!' .format(3.1343434343443))
3. f"xxx{变量}x"
name = "帅哥"
age = 12
print(f"my name is {name},age is {age}")
运算符
举个简单的例子 4 +5 = 9 。 例子中,4 和 5 被称为操作数,"+" 称为运算符。
python支持以下类型的运算符
- 算术运算符
- 比较((关系)运算符
- 赋值运算符
- 逻辑运算符
- 位运算符
- 成员运算符
- 身份运算符
- 运算符优先级
1. 算术运算符
这比较简单,如 + - * / %(取余)
2. 比较运算符
以下假设变量a为10,变量b为20:
运算符 | 描述 | 实例 |
---|---|---|
== | 等于 - 比较对象是否相等 | (a == b) 返回 False。 |
!= | 不等于 - 比较两个对象是否不相等 | (a != b) 返回 true. |
> | 大于 - 返回x是否大于y | (a > b) 返回 False。 |
< | 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。 | (a < b) 返回 true。 |
>= | 大于等于 - 返回x是否大于等于y。 | (a >= b) 返回 False。 |
<= | 小于等于 - 返回x是否小于等于y。 | (a <= b) 返回 true。 |
3. 赋值运算符
以下假设变量a为10,变量b为20:
运算符 | 描述 | 实例 |
---|---|---|
= | 简单的赋值运算符 | 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 |
4. 逻辑运算符
以下假设变量 a 为 10, b为 20:
运算符 | 逻辑表达式 | 描述 | 实例 |
---|---|---|---|
and | x and y | 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 | (a and b) 返回 20。 |
or | x or y | 布尔"或" - 如果 x 是非 0,它返回 x 的计算值,否则它返回 y 的计算值。 | (a or b) 返回 10。 |
not | not x | 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 | not(a and b) 返回 False |
#所有非0的数字都为true
a = 10
b = 20
c = (a and b)
print(c) #因为a为true所以输出b的值,输出 20
if a and b:
print('ok') #输出ok
c = (a or b)
print(c) #如果a非0那么输出a的值,输出10
print(not(c)) #输出false
c = (not(a and b))
print(c) #因为a and b值为20即为true,not(true)即为false输出false
5. 成员运算符
除了以上的一些运算符之外,Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组
运算符 | 描述 | 实例 |
---|---|---|
in | 如果在指定的序列中找到值返回 True,否则返回 False。 | x 在 y 序列中 , 如果 x 在 y 序列中返回 True。 |
not in | 如果在指定的序列中没有找到值返回 True,否则返回 False。 | x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 |
a = 10
list = [10, 2, 3, 4, 5 ]
#判断数字是否在列表中
if a in list:
print('ok') #输出ok
#判断字符i是否存在于字符串中
a = "china"
if 'i' in a:
print('ok') #输出ok
if 'k' not in a:
print('ok') #输出ok
条件判断
if语句
- 条件判断的内容,如果有值即为真,空值即为假
- 数字类型,如果为0表示假
- 条件判断的几种链接条件 and , or , not
- if True
- if False
if 条件:
成立
else:
不成立
if 条件:
成立
elif 条件:
成立
...
else:
不成立
循环
Python 提供了 for 循环和 while 循环(在 Python 中没有 do..while 循环)
1. while语句
while 条件:
循环语句
如,输出10个xcc
i = 0
while i<10:
print("xcc") #括号中输出的内容为什么要加引号?
#因为不加引号系统会识别为变量
i += 1 #python 中没有 i++
- 号表示负号
结果如下
2. for语句
for循环经常会用到
for i in range(a,b,步长值): #步长值默认为1可以不写
表达式
- 区间是 【a,b),步长值默认为1可以不写
- a和b没有大小之分,步长值可以为负数
如下对字符串“hello”输出2次,并同时输出i的值
for i in range(1,3):
print(i)
print("hello")
for循环中不加range可以遍历带有索引值的数据。如下
- #字符串
- for a in "python":
- print(a)
- 输出:p y t h o n
- #列表
- for i in ['abc','cde']:
- print(i)
- 输出:abc cde
- #数字
- for i in 10:
- print (i)
- 输出:报错 因为整数类型不包含索引值,不能一个一个输出,将10加上引号变成字符型就可以
例子:输出九九乘法表
for i in range(1,10):
for x in range(1,i+1):
print("{}*{}={}" .format(x,i,x*i),end=' ') #print默认输出带换行符,加上end=''则不进行换行
#print(f"{j}*{i}={i*j}",end=' ')
print(' ')
循环控制语句
循环控制语句可以更改语句执行的顺序。Python支持以下循环控制语句:
控制语句 | 描述 |
---|---|
break 语句 | 在语句块执行过程中终止循环,并且跳出整个循环 |
continue 语句 | 在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环。 |
pass 语句 | pass是空语句,是为了保持程序结构的完整性。 |
例子,如果输入的用户名不是tom的话,程序会一直循环,直到输入的名字为tom的话程序就会跳出(终止)整个循环
while True:
name = input("请输入用户名:")
if name == "tom":
print("欢迎")
break
else:
continue
random模块
random模块,可以在范围内生成一个随机数
- random.randint(start,end) 范围内生成随机数(包含头尾)
- random.choice([x,x,x,x,....]) 指定数中随机选取(可以是字符串或者数字)
- import random 调用一个功能模块
- print(dir(random)) 查看功能模块中有哪些功能属性
- print(help(random.randint)) 查看该功能的帮助信息
石头剪刀布例子:
#电脑随机出石头剪刀布,你出石头剪刀布,三局两胜
import random
list = ['石头','剪刀','布']
i = 0
c = 0
p = 0
pingju = 0
while True:
computer = random.choice(list)
#判断person输入的是否正确不正确重新输入
while True:
person = input('请输入石头剪刀布:')
if person not in list:
print("您输入的不正确请重新输入!")
continue
else:
break
if (computer == '石头' and person == '剪刀') or (computer == '剪刀' and person == '布') or \
(computer == '布' and person == '石头'):
print('电脑出的{},您出的{},您输了' .format(computer,person))
c += 1
elif (computer == person):
print('你们都是出的{}' .format(computer))
pingju == 0
else:
print('电脑出的{},您出的{},您赢了了' .format(computer,person))
p += 1
i += 1
if i == 3:
if c >= 2:
print(f"三局两胜计算机赢了,计算机赢了{j}次,你赢了{p}次,平局{h}次")
elif p >= 2:
print(f"三局两胜你赢了,你赢了{p}次,计算机赢了{j}次,平局{h}次")
else:
print(f"平局,平局{h}次,你赢了{p}次,计算机赢了{j}次")
break