Python基础
一、Python安装
##官网
https://www.python.org/
傻瓜式安装就行##校验
win 环境 python
mac 环境 python3如果想直接在mac环境用python而不是python3echo 'alias python="python3"' >> .bash_profile
##Linux 基于centos71、提前安装依赖程序
yum install wget zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make zlib zlib-devel libffi-devel -y2、安装
解压、进入 configure
./configure --prefix=/usr/local/python3.10.4 //设置安装目录
编译与安装
make && make install3、注意
linux 默认会安装一个老版本的python 2.7.54、设置
先删除老版本的软连接命令 rm -f /usr/bin/python
给安装的python设置一个软连接
ln -s /usr/local/python3.10.4/bin/python /usr/bin/python5、修改yum的一些文件,确保yum程序不受影响
vi /usr/libexec/urlgrabber-ext-down
将第一行 #! /usr/bin/python 改成 #! /usr/bin/python2vi /usr/bin/yum
将第一行 #! /usr/bin/python 改成 #! /usr/bin/python2
二、PyCharm
##我的快捷键
Ctrl+F4 关闭当前窗口
Ctrl+D 删除当前行
Alt+↑/↓ 移动当前行
三、Python基础语法
1、字面量
##数字number
·int 整数 如:10 -10
·float 浮点数 如:13.14
·complex 复数 如:4+3j
·bool 布尔 如True(本质上被记作1) False(本质上被记作0)##字符串string (文本)##列表List (有序可变序列)##元组Tuple (有序不可变序列)##集合Set (无序不重复集合)##字典Dictionary (无序k-v集合)
##验证数据类型type(被查看类型的数据)
2、注释
##单行注释
以#开头##多行注释
以 """ 开头 以 """结尾
3、变量
##概念
在程序运行时,能存储计算结果 或 能表示值的抽象概念。
简单说: 变量就是在程序运行时,记录数据用的.##格式
变量名称 = 变量值
4、数据类型转换
int(x) 将x转成整数
float(x) 将x转成浮点数
str(x) 将x转成字符串
5、标识符
##概念
用户在变成的时候所使用的一系列名字,用于给变量、类、方法等命名##命名
只允许出现:英文、中文、数字、下划线
(不推荐使用中文)
(数字不可以开头)##大小写敏感##不可使用关键字
如: False Tue None (首字母大写) and as assert break class continue def del elif elseexcept finally for from global if import in is lambda nonlocalnot or pass raise return try while with yield
6、运算符
+ 加 - 减 * 乘 / 除// 取整除 9//2 = 4
% 取余 9%2 = 1
** 指数 2**3 = 8
复核赋值运算符
运算符 描述 实例 += 加法赋值运算符 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
7、字符串扩展
##1、定义》单引号定义法 name='lee';
》双引号定义法 name="lee";
》三引号定义法 name="""lee""";注意:三引号定义法,和多行注释的写法一样,同样支持换行操作。使用变量接收它,它就是字符串.不使用变量接收它,它就可以作为多行注释使用
"""
字符串定义
"""
str1 = 'Hello World!'
print ( str1)
str2 = "Hello World!"
print ( str2)
str3 = """Hello World!你好,世界!""" ;
print ( str3) ;
##引号嵌套
eg:字符串本身包含引号,如何解决
》 单引号里包含双引号
》 双引号里包含单引号
》 用\来将引号解除效用,变成普通字符串
str4 = '"Hello World!"' ;
print ( str4) ;
str5 = "'Hello World!'" ;
print ( str5) ;
str6 = "\"Hello World!\"" ;
print ( str6) ;
str7 = '\'Hello World!\'' ;
print ( str7) ;
##字符串拼接
》 使用+号 如 a="你好" b="世界" c=a+b注意:字符串 和 整数\浮点数 是不能使用 加好拼接的
##字符串格式化
% 表示 我要占位了
s 表示 将变量变成字符串放入占位的地方注意:多个变量占位用()括起来如:
place = "河北";
phoneNumber = 18310103915
message = "这么近那么美,周末到%s,联系电话%s" % (place,phoneNumber);注意:其中phoneNumber是先将数字转成字符串,然后再拼接进去的
正确写法:
message = "这么近那么美,周末到%s,联系电话%d" % (place,phoneNumber);
格式符号 转化 %s 将内容转换成字符串,放入占位位置 %d 将内容转换成整数,放入占位位置 %f 将内容转换成浮点型,放入占位位置
##格式化的精度控制place = "河北";
phoneNumber = 18310103915;
price = 100.20;
message = "这么近那么美,周末到%s,联系电话%d,只花%f元" % (place,phoneNumber,price);
print(message);输出:
这么近那么美,周末到河北,联系电话18310103915,只花100.200000元使用m.n控制数字的精度
》m,控制宽度,要求是数字,设置的宽度小于数字自身,不生效
》n,控制小数点精度,要求是数字,会进行小数的四舍五入
如:
%5d 表示数字的宽度是5位,如果数字是11,就会变成 [空格][空格][空格]11,用三个空格补足宽度
%7.2f 表示数字的宽度是7位,小数的精度是2位,如果数字是13.145,就会变成 [空格][空格]13.15 org = "国新健康";
guoxin_price = 10.226;
message = "%s的今日的股价是%6.2f元" % (org,guoxin_price);
print(message);
##字符串格式化语法:f"内容{变量}"
缺点: 数字没法做精度控制name="国新健康";
set_up="1999";
stock_price="10.226";
print(f"{name}公司,成立于{set_up},今日股价{stock_price}");
###表达式进行格式化print("1*1 的结果是:%d" % (1*1));
print(f"2*2 的结果是:{2*2}");
print("字符串在python中的类型是:%s" % type("hello"));
8、数据输入input
##语法:
·数据输入:input
·数据输出: print##缺点
·输入的任何类型数据都是字符串,需要做转换eg:
print("请输入你的账号:")
account = input();
print(f"我知道了,您的账号是:{account}");password=input("请输入您的密码:");
print("我知道了,您的密码是:%d,您当前的账户余额:%d 元" %(int(password),999999999999));
9、布尔类型和比较运算
##布尔类型eg:
result = 10>5;
print("计算10 > 5的结果是:%s,result的类型是:%s" % (result,type(result)));result = "hello"=="你好";
print("hello==你好的结果是:%s,result的类型是:%s" % (result,type(result)));
运算符 描述 示例 == 判断内容是否相等,满足为True,不满足为False 如a=3,b=3,则(a == b) 为 True != 判断内容是否不相等,满足为True,不满足为False 如a=1,b=3,则(a != b) 为 True > 判断运算符左侧内容是否大于右侧,满足为True,不满足为False 如a=7,b=3,则(a > b) 为 True < 判断运算符左侧内容是否小于右侧,满足为True,不满足为False 如a=3,b=7,则(a < b) 为 True >= 判断运算符左侧内容是否大于等于右侧,满足为True,不满足为False 如a=3,b=3,则(a >= b) 为 True <= 判断运算符左侧内容是否小于等于右侧,满足为True,不满足为False 如a=3,b=3,则(a <= b) 为 True
10、判断语句
##语法if 要判断的条件1:条件1成立时,要做的事情elif 要判断的条件2:条件2成立时,要做的事情else:不满足条件时,要做的事情##注意 冒号eg:age = 30;
if age >= 18 and age<30:print("您已成年,可以进入网吧");
elif age>=30:print("您都这么大年纪了,还要去网吧?进去吧吧");
else:print("您未成年,不能进入网吧");
print("程序结束");
##判断语句的嵌套if 要判断的条件1:条件1成立时,要做的事情if 要判断的条件2:条件2成立时,要做的事情else:条件2不成立时,要做的事情
else:条件1不成立时,要做的事情eg:if float((input("输入您的身高")))<=120:print("您的身高小于120,下面我们开始判断您的年龄.");if int((input("输入您的年龄")))<18:print("您的年龄小于18,可以免费乘车");else:print("您的年龄大于18,需要支付10元");
else:print("您的身高大于等于120,需要支付10元");
print("程序结束")
11、循环语句
##while循环
#语法
while 条件:条件满足时,要做的事情eg:
i=0;
while i<100:print("你好世界",i);i=i+1;
##猜数字游戏
print("猜数字游戏开始")
import random;
num=random.randint(1,100);
flag = True;
while flag:guess = int(input("请输入一个整数:"))if guess == num:print("恭喜你猜对了")flag=False;elif guess > num:print("你猜的数字大了")else:print("你猜的数字小了")print("游戏结束")
##九九乘法表
i=1;
while i<10:j=1;while j<=i:# 其中 end=' ' 表示不换行输出,默认是换行输出,输出尾部添加空格print(f"{j}x{i}={i*j}",end=' ')j=j+1;print();i=i+1;
##for循环
#语法
for 临时变量 in 待处理的数据集:执行对应的代码eg:
name = "我叫李安宁";
for i in name:print(i,end=' ');##range语句
#语法1
range(num) 获取一个从0开始,到num结束的数字序列(不含num本身)
range(num1,num2) 获取一个从num1开始,到num2结束的数字序列(不含num2本身)
range(num1,num2,step) 获取一个从num1开始,到num2结束的数字序列(不含num2本身),数字之间的步长以step为准eg:
for i in range(10):print(i,end=' ');
print();for i in range(1,10):print(i,end=' ')
print()for i in range(1,10,2):print(i,end=' ')##九九乘法表
for i in range(10):for j in range(1,i+1):print(f"{j}x{i}={i*j}",end=' ')print()##continue 结束本次循环 循环下次循环
##break 循环中断