python基础 | 开始,数值转换,数据运算,类型转换

1、开始

1.1 在Linux中使用python

1、python是脚本语言,且可跨平台,shell是能在Linux中用

2、用于 科学计算,自动化运维,云计算服务(前端),网络爬虫,数据分析,AI前端
当作字典,主要是第三方库

3、在Linux中使用Python
ubuntu 20.04已支持 python3 ,不用再安装。老版本apt-install也可以安装的
命令端方式(不会创建文件,直接每行返回结果):
在Linux中使用Python
程序文件方式:

vim a.py  //创建python程序

在这里插入图片描述
运行程序

python3 a.py //运行Python程序

1.2 安装VScode并使用

原因:vim+cscope 跟踪源码厉害,但编辑不方便
VScode优势: 界面简介漂亮,跨平台(window linux),跨语言(c c++ python js java…),插件丰富,自动提示,按照可扩展成IDE调试

下载完复制进虚拟机

sudo dpkg -i code_1.59.1-1629375198_amd64.deb //用离线包 安装vscode
             //卸载  dpkg -r code_1.59.1-1629375198_amd64.deb

将python3解释器 与 vscode 关联起来:
1、配置解释器: 点最下面的状态栏 的 python 3.10.6 -> 选默认的

2、运行和调试: 点 运行和调试 -> 创建lanuch.json (运行和调试的配置文件,类似于解释器(翻译)关联了,所以运行直接就可以跑) -> 选Python Debugger -> Python文件

3、断点调试: 在某行代码 行数字的前面 点击 设置断点(红点变亮) 点绿三角运行(或F5)(可以查看变量) -> 可单步调试(F11) 单步跳出是指 有函数不会跳进去

4、把对应目录的.vscode 文件拷到新的文件夹中,无需花时间再配置(文件夹拷贝要递归的拷贝,加-rf: $ cp ../VScodeFiles/.vscode/ . -rf
要看到.vscode隐藏文件需要加 -a ls -a
.vscode拷到新的文件夹中

1.3 VScode下实用操作

1、输出时不显示多余信息(即解释器+文件位置),放到外部窗口去显示:更改launch.json里的console配置为 “console”: “externalTerminal” 按F5键,解释运行就会弹窗口(一闪而过)

2、ctrl + = //放大字体
ctrl + - //缩小字体
F5 //运行程序

3、避免终端运行后退出:用鼠标选中里面内容,鼠标不松开它不会退出
终端长时间停留 在代码末尾加(导入功能块,停3秒)

import time  
time.sleep(3)

4、终端字体大小永久设置:终端右键 -> 首选项 -> 点 + -> 输入新配置名 -> 勾选 自定义字体 -> 调节大小 点选新配置的小三角,下拉菜单 选设为默认

1.4 初识

python代码 都是逐行 解析的,每一行的 print() 换下一行输出

from time import sleep,ctime  #导入第三方的库函数
    
fire='大火'  #变量赋值
def do_xcr():   #定义函数(完成做一件事)
    print("准备食材")
    print("-----开始炒菜------")
    pot = "油"
    pot = pot+ 'pork'
    print('锅里有:'+pot)
    if(fire == '大火'): #分支判断
        count=0
        while(count<10):  #循环控制
            count = count+1	
            print('翻炒'+str(count))
    else:       
        print('翻炒40下')
    pot = pot+ '辣椒'+'盐'+'花椒'
    print('锅里有:'+pot)
    sleep(2)  #调用第三方的函数
    print("装盘完成")
    print(ctime())  #显示当前的时间

print("============做小炒肉=============")
do_xcr()  #调用函数
print("============做小炒肉=============")
do_xcr()  #调用函数(避免代码重复)

运行结果:
运行结果

2、数值转换

2.1 八进制,十进制,十六进制

2.1.1 0o表示8进制

# 0o表示8进制
from decimal import *  #decimal意思为十进制,这个模块提供了十进制浮点运算支持
a = 0o101
print("a="+str(a))
print("\n\n")

运行结果:a=65
str() 出来都是十进制的字符形式 因为 ‘0’ == 0

print("a="+str(65))

运行结果也是 a=65

2.1.2 10进制

# 10进制
b = 64
print('b='+str(b))
c = -237
print('c='+str(c))
print("\n\n")

运行结果
b=64
c=-237

2.1.3 0x表示16进制

# 0x表示16进制
d = 0x80
print('d='+str(d))
e = -0x92
print('e='+str(e))
print("\n\n")

运行结果
d=128
e=-146

2.2 长整形(** 代表次方)

不需要写类型,直接赋值

longint = 10000 ** 8  # 8次方
print("longint="+str(longint))
print("\n\n")

2.3 bool 类型

print(bool(1))
print(bool(True))
print(bool(''))
print(bool("123"))
print(bool([]))
print(bool([2,3,5]))
print(bool(()))
print(bool((2,3,5)))
print("\n\n")

运行结果
True
True(True,1自然是true)

False
True
False
True
False
True(无论是元组字符串,还是列表,只要不空就是true空就是false

# 使用bool数
foo = 42
bar = foo < 42

print(bar)
print(bar+10) #false == 0
print('%s' % bar)
print('%d' % bar)    #%f
print("\n\n")

false == 0

2.4 双精度浮点的几种形式

print(-5.555567119)
print(-5555567119e-9)
print(96000.)
print(96e3 * 1.0)
print(-1.609e-19)

运行结果
-5.555567119
-5.555567119
96000.0
96000.0
-1.609e-19

2.5 复数的几种形式

print(complex(2, 4))
print(1.23e-045+6.7e+089j)

运行结果
(2+4j)
(1.23e-45+6.7e+89j)

2.6 十进制浮点

dec = Decimal('.1')
print(dec)
print(Decimal(.1))
print(dec + Decimal(.1))

注意参数 ‘.1’ 和 .1 的区别

运行结果:
0.1
0.1000000000000000055511151231257827021181583404541015625
0.2000000000000000055511151231

也说明了十进制浮点并不是精确的,有的时候判断是不是要用作差小于一个很小值

2.7 格式转换

print(int(4.9999999))
print(float(4))
print(complex(4))

运行结果
4
4.0
(4+0j)

int() 永远是舍出,9再多也没用

2.8 进制转换

print(hex(255))  # 10进制转16进制
print(oct(255))  # 10进制转8进制
print(oct(0x111))  # 16进制转8进制

运行结果
0xff
0o377
0o421

2.9 ASCII转换

print("ASCII转换....")
print(chr(76))   # 数字转字符
print(ord('L'))  # 字符转数字

运行结果
L
76

3、数据运算

3.1 算术

%取模(求余) **幂 //取整除

print(6+3*5/2); 

#浮点型精度问题(因二进制,0.333表示有问题)运算中有0.3出现都会有问题
print(0.3-0.2);             #输出0.099  
print(0.1+0.2==0.3);        #输出 false
#解决方法:放大后再缩小
print((10*0.1+10*0.2)/10==0.3); #输出 true
 
#% 取模(求余)
print(3%2);  #单双数判断

print(2**3);  #//2的3次方(幂)
print(9//2);  #//取整除 为4	

3.2 比较

除了比较值,还比较类型,2.0和2是一类的

a=2
b='2'
if(a==b):
  print('值相等')
else:
  print('值或类型不相等')

a=2
b=2.0
if(a==b):
  print('值相等')
else:
  print('值或类型不相等')

3.3 位运算

&与 |或 ~非 ^异或 <<左移 >>右移

a=60 #//对应二进制00111100
b=13 #//对应二进制00001101
print(a&b)    # 00001100
print(a|b)    # 00111101
print(a^b)    # 00110001
print(~a)     # 11000011
c=4           # 00000100
print(c<<1)   # 00001000 左移乘2
print(c>>1)   # 00000010 右移除2

3.4 逻辑运算

and与 or或 not非 in not/in is/is not if/if not

age =25
print('是青年吗 ',(age>18 and age<30))

hasHouse,money =True,1000
#hasHouse,money =False,1000
if(hasHouse or money>1000000):
  print("有房或有1000万")

if not(hasHouse or money>1000000):
  print("即没房也没1000万")

list = [1,2,3,4,8]
print('3在list中吗',3 in list)
print('6不在list中吗',6 not in list)

lili = {'name':'lili','age':30}
x = lili
x['name']='linda'
print(x,'是lili这个字典吗',x is lili) # 跟name里面的lili没关系

运行结果:
运行结果

4、类型转换

Python是强类型的

# int() 转换为整型数字 	
print(int(3.14)+2)	
print(int('12')+5)
print(int(0xa)+3)
# 转float
print(float(3)+1.24)		
# str() 转换为字符串    
print(str('12')+'5')

lili = {'name':'lili','age':30}
print(str(lili)+'good')
#print(lili+'good') #fail  	

# 隐式转换(自动转换)   
name = 'ivan'
print(name[1]); # 字符串转换为列表 --> 查找某位置的字符,但是不能修改name[1]的值:name[1] = 'a'
print( '7'+'people')          # 数字转换为字符串	--> 进行拼接
print( '7'-'people')           # 报错:隐式转换失败 str和str不支持-操作

运行结果:
运行结果

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值