输入语句
python中,通过input函数获取用户键盘输入
input函数的参数是字符串,它是屏幕提示语
# 变量赋值,=两边空格可有可无 >>> user = input('username: ') # 用户输入内容保存到变量user中 username: tom >>> user # 使用变量 'tom' print('name','page','IOQQ',sep='-',end='\n\n') sep=(*) 显示输出用*分隔,end=‘\n\n’换行 sep和end配合使用 # input读入的数据都是字符串类型。相同类型的数据才能运算 >>> num = input("number: ") number: 10 >>> num + 5 # num是字符串,不能和数字进行运算 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: must be str, not int >>> type(num) # 查看num的类型 <class 'str'> >>> int(num) + 5 # int函数将字符串转成整数 15 >>> num + str(5) # str函数将对象转成字符串 '105' >>> num + "5" #用引号都会变成字符串 '105' 处理比较复杂的字符用三个单引号或三个双引号 ‘’‘ *** ’‘’(开头结尾也可用为注释) “”“ *** ”“” 转义字符 #反斜杠(\)转义特殊字符 \n 换行 原始字符 r|R print(r/R'\\n') \\n abs绝对值取整 abs(-1) :1
数据类型
整数(int) 定义整数类型不用加引号
取值 1 or -1 or 0
浮点形
字符串(str) 字符串无法所数学运算 其他类型加上“”会边成字符类型
两个单引号 or 两个双引号
a='hello' b="bug"
转译字符(\)
\n 换行 or \t 制表符(空格)
在字符串里+r,内容不转移
单引号只能一对单引号,或者用转译字符‘my\’list‘
c1="my\
test" #是同一行
布尔型(bool)
只有True and false 两种值 一用来比较运算和条件表达式
基本运算
计算长度:len
截取:string(开始:结束:步长) [开始:结束) *从0开始数
#print(len(*))
test=python,890
a=test[2:8:2]=to,
a2=test[4:]=on,890 #4往后的列出
a3=test[:4]=pyth #4往前的列出
运算符:
- 算数运算符:
- 基础运算符
-
- //除完取整
- 取余数
-
- 运算
- 分类
- %2 0->偶 | 1->奇 and %3可以把数分成三类
- 取整
- 幂次 **
- 赋值运算符:
- 基础运算
- a=4;b=a;print(b)=4
- 符合运算
- a=4;b=5;b+=a;print(b)=9 #b=b+a *加减乘除类似
- 基础运算
- 比较(关系)运算符: #返回值为布尔类型
- > or < or >= or <= or == or !=
- 逻辑运算符:
- 与 #并且
- 或 #或者
- 非 #取反
- 类型转换:
- 数值 --> 字符
- str
- repr print(repr(*)输出后会加上’‘号
- 字符 -->数值
- int 整数 test=int(*)
- float 小数 test2=float(*) #*.0
- 数值 --> 字符
基础语法
输入
input(”要输入的内容“)
a=input("吃了:")
print=(”你输入的是:“,a)
#print=(a*2)=1010 #字符串*2会输出a两次
#利用str 和 int
输出 a=1;b=2
print
print("这是%个%",(n,s)
print("这是{}个{}".format(n,s)
数据结构
列表
定义
a=[1,2] #有值列表
b=[] #空列表
访问
单个元素
- a=123456
- print(a[2])=3 #正索引 从前往后 ,从0开始
- print(a[-2])=5 #负索引从后往前,从-1开始
- a[2]=444 #把原a2的数字换成666
切片
- a[开始:结束:步长]
添加
- append函数 #a.append(4) 在列表最后边添加4
删除
- del函数 #del a[索引]
元组
创建
- a=(1,2,3,4,5,6,7) #创建后不可改变元素
- b=(1,) #创建单个值的元组,后边+(,),他才是一个元组,否则是int类型
访问
- 与列表访问方式相同 #print(a[1])=2
- 索引访问
- 切片访问
- 不能修改值
操作
- 删除元组 del x
- 连接 a=(1,2);b=(3,4);print(a+b)=1234
- 计算长度 len(a)
- 迭代 a=(1,2) print(a*2)=(1,2,1,2)
字典
定义
- 列表+元组 #值对
- key:value Or 键:值 对
创建
- a={
- "Name1":11,
- "Name2":22
- }
- print(a)={'Name1':11,'Name2':22}
引用
- print(a["key"])
修改
- a["key"]=要修改的新值
增加
- a["新的key"]=* #直接添加新的key
删除
- del a["要删除的key"]
集合
定义 #不允许重复的值存在
- 直接使用{}创建
- mySet = {"test1","test2","test3"}
- 使用set()创建
- mySet = set([1,2,3,4])
添加
- 集合的名字.add(要添加的元素)
删除
- del: del 集合名 #删除集合
- ppop(): 集合名.pop() #随机删除一个元素 #如果是数字,可能会从最小的删除
- remove(): 集合名.remove(要删除的元素) #删除指定元素
- clear(): 集合名.clear() #删除全部元素,但是保留集合
运算
- 交集:&
- setname1 & setname2 #把两个合集有的集在一起
- 并集:|
- setname1 | setname2 #把两个集合不重复的合并在一起
- 差集:-
- setname1 - setname2 #1减去2有的,1剩下的集合
分支结构
单分支
if 条件表达式:
事件A
#设置交换 s,y=y,s s和y的值互相对换
双分支
if 条件表达式:
事件A
else:
事件B
多分支
if 条件表达式1:
事件A
elif 条件表达式2:
事件B
else:
事件C
嵌套
if 条件表达:
elif 条件表达式:
if 条件表达式:
else:
else:
内联if(if表达式,条件表达式等)
语法
- 基本语法
- 值1 if 条件 else 值2 #if else 写在同一行
- 先对条件判断,条件成立返回值1,否则返回值2
- 语句结构
计算最大值
- a=* & b=*
- c = a if a > b else b
计算绝对值
- a=*
- c=a if a>=0 else -a
- print(c)
- #大于,对应关系:小于等于,不仅仅是小于
- #小于,对应关系:大于等于,不仅仅是大于
函数
自定义函数:
def 函数名(参数):
函数体
[return 返回值]
标准模块
os:提供了操作系统交互的函数
sys:系统相关的参数和函数
time:时间相关的函数
print(time.time()) #返回当前时间的时间戳
print(time.localtime()) #当前的时间
- 0 tm_year (年)
- 1 tm_mon (月)
- 2 tm_mday (日)
- 3 tm_hour (时)
- 4 tm_min (分)
- 5 tm_sec (秒)
- 6 tm_wday(weekday),0时周一,以此类推
- 7 tm_yday(一年中的第几天)
- 9 tm_isdst(是否时夏令时),0非夏令时、1夏令时、-1不确定
time.sleep(3) #中间停顿3秒 math:提供对浮点数学的底层C库函数的访问 random:提供进行随机选择的工具 re:为高级字符串处理提供正则表达式工具
正则表达式
import re
a = '
reg = '******'
re.findall{reg,s) #
元字符
. 代表的是换行符(\n,\r\n)以外的任意字符|
\w 匹配字母或数字或下划线或汉字的字符
\s 匹配任意空白符
\d 匹配数字
^ 匹配字符串开始
$ 匹配字符串结束
反义代码 #与元字符相反的代码
\W 匹配任意不是字母数字下划线汉字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意不是数字的字符
限定符 #某一个逻辑集合所出现的次数
* 代表重复0次或者多次
+ 代表重复1次或者多次
? 代表重复0次或者1次
{n} 重复n次的意思
{n,} 重复n次或者更多次
{n,m} 重复n次到m次
分组匹配
s = "我的qq号码是:333,mypostcode: 10000"
reg = "(\d{8}).*(\d{5})"
result = re.search(reg,s)
result
##<_sre.SRE_ Match object; span=(8,35), match='333,my postcode: 10000'>
result.group()
##' 333,my postcode: 10000'
result.group(0)
##' 333,my postcode: 10000'
result.group(1)
##'333'
result.group(2)
##'10000'
贪婪与非贪婪
贪婪:尽可能多的匹配
reg = '\d*'
reg = 'i?' 一个一个尽可能多的匹配
非贪婪:尽可能少的匹配 ??:代表匹配一次
在元字符后边加上非贪婪匹配操作符,这个时候就是非贪婪匹配,就是尽可能少的匹配
浙公网安备 33010602011771号