python|简介和运行

本文详细阐述了Python编程的基础概念,包括程序定义、Python选择理由、三种运行方式,以及变量、输入输出、数据类型(如整数、字符串、列表、元组、集合和字典)的使用。此外,还介绍了控制结构和异常处理的基本要素。
摘要由CSDN通过智能技术生成

基本概念

什么叫程序?
一段可以由计算机执行的代码,叫做程序。程序都是由某种特定编程语言来编写的,比如用java代码写的,叫java程序,用python代码写的,就叫python程序。

为什么是Python,不是Java或是其他编程语言?

  • 胶水语言,丰富的第三方库可以跟任何其他语言编写的程序进行互相调用
  • 编程效率非常高,人生苦短,我用Python。特别适合于像做测试开发这样工具型、框架型的开发工作
  • 与其他开发语言对比,语法简单,易学易理解

运行Python程序的三种方式

1.交互式解释器中直接运行Python代码
2.命令行的方式运行Python代码(cmd)
3.用编辑器运行Python代码 (Pyharm,VSCode等)

学习一门编程语言究竟要学些什么?

  • 输入输出

输入|输出(打印),在括号里写入想要展示的内容,字符串内容需要加引号“”,数值型不用加引号
1、print(数值/字符串/变量/方法/函数/类)
2、print(输出内容1,输出内容2,end='')#不换行输出
3、print(输出内容1,'\n',输出内容2)
4、input(“提示的信息“) 提示信息可以不写,一般input是结合 print一起使用

**input()**接受用户输入,Python 3.X 后,返回值永远是字符串类型
y = input('请输入您的姓名:')

x=int(input('请输入您的年龄:'))

print()打印输出,可以用','分隔参数,默认带回车(换行显示)
print('hello')
print( 'hello','world ','!')
print('hello world!',end='') # 在后台不换行打印

  • 数据类型

在程序运行过程中它的值是允许改变的量,叫变量。变量用于在程序中存储特定的数据或信息。
Python中使用变量需要注意几点

  • Python 中的变量不需要类型声明,变量的类型由赋值给它的数据的类型决定。
  • 每个变量在使用前都必须先被赋值,变量被赋值后该变量才会被创建。
  • 等号(=)用来给变量赋值。等号 (=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。

Python变量赋值的过程
变量名只是一个名称,它与赋值给这个变量的对象相关联。大家可以把变量名想象为一个门牌号,知道门牌号就可以找到对应的地址。
每次执行变量赋值语句的时候系统会自动开辟一块内存区域来保存这个变量的类型、值、内存地址等信息。

name = '张三'
password = '123456'

输出变量名name和password

print(name,password)

打印name和password的内存地址

print(id(name),id(password))

python提供了keyword模块可以查看当前版本的关键字

import keyword
print("python关键字:",keyword.kwlist)
print("python关键字个数:",len(keyword.kwlist))

Python中变量命名的规则
1.第一个字符必须是字母或下划线'_',其他的部分由字母、数字和下划线组成。py文件不要使用'-'和以数字开头命名。
2.变量名称对大小写敏感。
3.变量名不要使用Python的保留关键字或内置模块名
4.在实际项目中,尽量使用能够表征变量含义的变量名

查看数据的数据类型

type(参数)

name = '张三'
password = 123456
print("变量name和password的类型")
print(type(name),'\n',type(password))


注意: python是一种解释型语言(解释型语言指的是代码在执行的时候需要先被python的解释器运行后才会执行),python代码执行的顺序是由上而下一行一行执行的

为什么要区分数据类型?
不同的数据类型可以处理不同的问题和场景,所以不同数据类型有不同的方法。
总之,有了类型,鸟笼里的是鸟,狗窝里的是狗,如果没有,你永远不知道冰箱里的是不是大象!

Python3的标准数据类型**
Number数值
List列表
String字符串
Set集合
Tuple元组
Dictionary字典

数值类型:分为int、float、complex(复数)三种

  • 整型:通常被称为是整型或整数,是正或负整数,不带小数点。如:10、78。

  • 浮点:由整数部分与小数部分组成。如: 2.65、3.1415。

  • 复数:复数由实数部分和虚数部分构成,可以用a + bi,或者complex(a,b)表示复数的实部a和虚部b都是浮点型。 (例:-4的平方根)

Random模块产生随机数

import random
random.random(): 返回[0.0,1.0) 之间的浮点数,注意,这是一个左闭右开的区间,随机数可能会是 0 但不可能为 1

random.randint(a,b): 生成一个 a与b 之间的随机整数,也就是 [a,b]

random.randrange(a, b): 生成的随机整数不会包含 b ,也即 [a,b)

random.uniform(a,b): 生成 [a,b] 之间的随机浮点数

random.choice([]): 从列表中随机取出一个元素

random.shuffle([]): 打乱列表中元素的顺序

random.sample([],n): 从序列中随机取出 n 个元素

字符串切片
切片操作 (slice) 可以从一个字符串中获取子字符串 (字符串的一部分)。我们使用一对方括号、起始偏移量start、终止偏移量end 以及可选的步长step 来定义一个分片。
格式: [start:end:step]

  • [:] 提取从开头(默认位置0) 到结尾(默认位置-1)的整个字符串
  • [start:] 从start 提取到结尾
  • [:end] 从开头提取到end - 1
  • [start:end] 从start 提取到end - 1
  • [start​:end:step] 从start 提取到end - 1,每step 个字符提取一个
    step为正表示正序切片,为负表示逆序切片,默认为正1。正序切片时,要求start必须从字符串开头处进行计数,逆序切片时start必须从字符串尾部计数。无论正序还是逆序,start均要求在end之前,否则无法得到内容。

math模块中常用的方法

  • ceil: 取大于等于x的最小的整数值,如果x是一个整数,则返回x

  • pow:返回x的y次方,即x*y

  • sqt:求x的中方根

  • floor:取小于等于x的最大的整数值,如果x是一个整数,则返回自身

  • fabs:返回x的绝对值

格式化输出
print(f'字符串{变量名/函数名/方法名/类名}')
print('字符串{}'.format(参数)) 参数就是变量名/函数/方法

注释
#单行注释
"""注释的文本""" '''注释文本'''
注释中的内容不会被python的解释器执行

列表

是Python中的重要数据类型,它可以作为一个方括号内的逗号分隔值出现。列表的数据项不需要具有相同的类型。创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:

列表的初始化:

变量名 =[element1,element2,element3]

列表就像一个大口袋,什么都可以装!

list0 = ['hello',"world!"]
list1 = [1,2,3,4,5]
list2 = ['a', 'b', 'c']
list3 =['哈哈',2,'safe',['1',2,4],list2]
print(list0)
print(list1)
print(list2)
print(list3)

isdigit() 如果字符串只包含数字则返回 True 否则返回 False
isalpha() 判断字符串中是否只包含字母
islower() 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
isspace() 如果字符串中只包含空格,则返回 True,否则返回 False.
istitle() 如果字符串是标题化的(见 title())则返回 True,否则返回 False
lower() 转换字符串中所有大写字符为小写.
startswith(str, beg=0,end=len(string))检查字符串是否是以 指定的str 开头,是则返回True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。
strip(str): 删除字符串两边的str代表的字符,如果不指定str则删除空白字符
rstrip(str)和lstrip(str): 删除字符串右边或左边str代表的字符,如果不指定str则删除空白字符

列表常用方法
list.append(obj) 在列表末尾添加新的对象

list.count(obj) 统计某个元素在列表中出现的次数

list.extend(seq)在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来列表)

list.index(obj) 从列表中找出某个值第一个匹配项的索引位置,索引从0开始

list.insert(index,obj) 将对象插入列表

list.pop(index) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

list.remove(obj) 移除列表中某个值的第一个匹配项

list.reverse( )反向列表中元素,倒转

list.sort() 对原列表进行排序 (无返回值)

max(list) 求列表最大值

min(list) 求列表最小值

sum(list) 对列表求和

len(list) 求列表中元素个数

list(str) 将字符串强制转换为列表

list(range(start,end=None)) 快速生成指定范围内的数字列表

列表也是一种序列,序列内的元素都是有标号的,即从0开始,可以通过索引访问。
list = [1,2,3,4,5]

print(list[2))

列表的元素修改:list[3]=100

列表也可以通过+ 连接:
list1 = ['a' ,'b']
list2 = list + list1
列表删除:

del list2[3] 无返回值
del list
列表清空:

list.clear()

增加: append(元素)

删除单个元素: remove(元素)、pop(索引)

清空整个列表: clear(list)

实际上,数字、字符串、列表,包括后面学习的元组、集合和字典都可以使用del来进行删除操作。

元组类型

Python的元组与列表类似,不同之处在于元组的元素不能修改;元组使用小括号(),列表使用方括号[];元组创建很简单,只需要在括号中添加元素,并使用逗号(,)隔开即可。
tup= (“hello”,“world!")

tup1 = (1,2,3,4,5)

tup2 = ('a' ,'b','c')

tup3 =(‘哈哈’,2,'safe',['1’,2,4],tup2)

列表的初始化:
变量名 =(element1,element2,element3)
注意:元组一旦初始化,就不再允许被修改!!
尝试一下列表的方法对元组进行操作。

元组常用方法
len(tuple)计算元组元素个数

max(tuple)返回元组中元素最大值

min(tuple)返回元组中元素最小值

tuple(seg)将列表转换为元组

**元祖和列表之间的转换: 列表转元祖 tuple(list) 元祖转列表 list(tuple)**这也是强制转换

集合数据类型
Python的set和其他语言类似,是一个无序不重复元素集,主要用于消除重复元素

集合中只能包含不可变类型的元素

可变与不可变数据类型

可变是指:修改变量中的不会产生新的内存地址 列表 字典 集合

不可变:修改变量中的值会产生新的内存地址 元祖 数值 字符串

如何创建一个集合?

1.使用花括号如:s =[1,2,3,5,6]

2.使用set()函数,如: s1= set([2,3,5,7,9])这种方式,相当于将其他类型的数据强制转化为集合类型

思考:尝试将一个字符串转化为集合,比如 ('hello,world!')看看有什么结果? 为什么?

转换: 集合转列表 list(set) 集合转元祖tuple(set) 集合转字符串 str(set)

字典数据类型
字典(dictionary)是除列表之外python中最灵活的内置数据结构类型,列表是有序的对象结合,字典是无序的

对象集合

两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过索引存取

注意,在字典中,只有不可变数据类型可以作为字典的键

字典的每个键值(key= >value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中,格式如下所示:
d = {keyl1: value1, key2: value2}

字典常用方法
dict.clear()删除字典内所有元素

dict.copy()返回一个字典的深复制

dict.fromkeys([])创建一个以序列seq中的元素作为键的新字典

dict.get(key,default=None) 返回指定键的值,如果值不在字典中返回default值

dict.update(dict2) 把字典dict2的键/值对更新到dict里

dict.keys()以列表返回一个字典所有的键

dict.values()以列表返回字典中的所有值

dict.items()返回字典中的键值对列表

dict.popitem()随机删除字典里面的任意一项

dict.pop(key)删除指定的键值对

集合不支持切片操作

  • 控制结构

  • 函数定义

  • 对象定义

  • 文件读写

  • 异常处理

报错处理

通过控制台的错误提示和错误代码行找问题,报错中有显示多个文件,需要关注的自己的代码文件和错误信息

import json
import requests
url = 'http://192.168.1.131:335/api/services/app/BaseManufacturer/Save'
# 定义请求头
header = {
    'Host': '192.168.1.131:335',
    'Connection': 'keep-alive',
    'Accept': 'application/json, text/plain, */*',
    '.AspNetCore.Culture': 'zh-hans',
    'Abp.TenantId': '1',
    'Authorization' : 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1laWRlbnRpZmllciI6IjIiLCJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiYWRtaW4iLCJBc3BOZXQuSWRlbnRpdHkuU2VjdXJpdHlTdGFtcCI6IjI2OGY2NDJjLTE5YmItZjMzNC03YzA1LTM5ZmY3ZWIwMWIwYiIsImh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vd3MvMjAwOC8wNi9pZGVudGl0eS9jbGFpbXMvcm9sZSI6WyLkuLTluorljLvnlJ8iLCLkuLTluornp5HkuLvku7siLCLovpPooYDnp5HljLvnlJ8iLCJBZG1pbiJdLCJodHRwOi8vd3d3LmFzcG5ldGJvaWxlcnBsYXRlLmNvbS9pZGVudGl0eS9jbGFpbXMvdGVuYW50SWQiOiIxIiwic3ViIjoiMiIsImp0aSI6ImEzMzVjNjlhLTFiNjMtNGRjYS04MWQxLWI3NDBiYTQ3YjgxNCIsImlhdCI6MTcwMjcxNjY5OCwibmJmIjoxNzAyNzE2Njk4LCJleHAiOjE3MDI4MDMwOTgsImlzcyI6Ik1rYnRtcyIsImF1ZCI6Ik1rYnRtcyJ9.0_UjqqZLG0isqTrGuc61EKXdyyzSKs7cyPrd2kpq-ZI',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    'Origin': 'http://192.168.1.131:5035',
    'Referer': 'http://192.168.1.131:5035/',
    'Content-Type': 'application/json',
    'Accept-Encoding': 'gzip, deflate',
    'Accept-Language': 'zh-CN,zh;q=0.9'
}
pyload = {"id":1,"code":"BJWT","name":"北京万泰","remark":"001","isEnabled":1}
try:
    r = requests.post(url, headers=header, data=json.dumps(pyload))
    print(r.status_code,r.text)
except IOError:
    print('代码没有执行到!')

加print调试代码找错误

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值