python学习_day1-------python基础语法+字符串认识

python基础语法

一、注释

# 单行注释:#   快捷键 CTRL+/
# 多行注释:三个引号(单引号或者双引号)

二、输出语句–print

print()

#对输出语句的进一步认识
#源码:print(self, *args, sep=' ', end='\n', file=None)
#sep分隔符,默认用空格隔开,可以设置
#end='\n'换行,默认换行,可以设置
#print语句中如果有多个字符串,默认以空格隔开(可通过sep设置为其他分隔符)
print("hee","python",sep='_',end='\t')
print("hee","python",sep='_')

三、输入语句–input–可以输入任何形式

tmp=input("请输入:")
print(tmp)

四、 python基础数据类型

# Number数字:int整型  float浮点型  boolue布尔  complex复数
# String字符串
# List列表
# Tuple元组
# Dictionary字典
# Sets集合

五、 查看数据类型type()

print(type(18))
print(type(18.0))
print(type("张三")) #单引号或双引号包括起来的内容为字符串
print(type(True))

六、 变量

# 变量的类型由数值决定,变量本身不具有数据类型

七、 标识符:变量名,类名,函数名

# 命名规则:1>字母,数字,下划线;数字不能开头
#          2>不能与关键字同名
# 查看关键字
import keyword
print(keyword.kwlist)
# 关键字:
# ['False', 'None', 'True','and', 'as', 'assert', 'async','await', 'break', 'class', 'continue','def', 'del', 'elif', 'else', 'except','finally', 'for', 'from', 'global', 'if','import', 'in', 'is', 'lambda', 'nonlocal','not', 'or', 'pass', 'raise', 'return','try', 'while', 'with', 'yield']

八、 系统内置

# int 可以作为标识符,但是不推荐

九、运算符

1、算数运算符 + - * / // % **

print("整除",9//2)
print("幂运算",3**2)

2、赋值运算符 =

3、复合赋值运算符 += -= *= /= %= **= //=

# 练习:数字的逆序输出--123转换为321
num1=123
#百位
a=num1//100
#十位
b=num1%100//10
#个位
c=num1%10
num2=c*100+b*10+a
print("123逆序输出:",num2)

print("-------------------------------------------")
#复杂度低的数据类型进行升级
#数据复杂度:bool<int<float(因为都属于数字类型)
print(1+20.5) #21.5
print(1+True) #2

#4、关系运算符 > >= < <= != ==

#返回类型为布尔类型
print(1==1.0) #True
print(1==True) #True
print(1.0==True) #True
print(-0==0) #True

5、逻辑运算符 and or not

#短路原则
exp1=True
exp2=True
exp3=False
# exp1 and exp3 and exp2 #前边出现False就不往后走了

十、缩进

没什么

十一、python中没有常量 用大写字符代表

PI=3.1415

十二、数据类型的转换

1、转换为整数int

#转换为整数int--浮点型、布尔型、仅包含数字的字符串
a=20.6
a=True
a="123"
a="zzz"#字符串中只有数值类型,可以强制转换,如果包含字母不能进行转换
new_num=int(a)
print(new_num) #20  1  123

2、转换为float

#转换为float--整型、布尔型、仅包含数字的字符串

3、转换为bool

#转换为bool--非0数值都会被转换成True,只有0是False
#空字符串是False
a=-100 #True
a="aaa" #True
a="" #False
a=" " #True
bool(a)

字符串

1、定义:不推荐使用str作为变量名

str1=""  #str1=''
print(type(str1)) #<class 'str'>

2、字符串 不可修改的有序序列

#1>不可修改
#关于字符串不可修改
# str1="hello"
# str1[0]="H"
# print(str1)
#2>有序序列
#正向索引 反向索引

3、字符串的访问

str2="my name is mike"

1>字符串名字[下标]

#这种方法只能访问一个元素
print(str2[0])

2>字符串名字[start:stop:step] 步长可选

#start默认0,stop默认整个字符串长度,step默认1
#start stop 前闭后开

#练习
print(str2[-4:]) #取mike
print(str2[:]) #取全部

#当步长为负数,从右往左进行查找
print(str2[-1:-5:1])
print(str2[-1:-5:-1])
print(str2[::-1])
#练习:数字翻转、提取数字
num1="123"
print(num1[::-1])
num2="123456789"
#13579
print(num2[::2])
#8642
print(num2[-2::-2])

4、字符串的遍历

num2="123456789"
for tmp in num2:
    print(tmp)

5、字符串的拼接

1>加

str1="张三"
str2="你好"
new_str=str1+str2
print(new_str)

2>乘

print('*'*60)
print('123'*3)

6、字符串的操作

1>替换操作

#替换操作:str1.replace("旧的子串","新的子串")
str1="hello"
str2=str1.replace("h","H")
print(str2)
print(str1) #原始字串没有变化

2>查找操作

"""
find:默认从左往右找
rfind:从右往左找
找不到返回-1

index:默认从左往右找
rindex:从右往左找
找不到报错
"""
str1="hello_world"
#查看o所在的索引
print("元素o第一次出现的位置",str1.find("o"))
print("元素o第一次出现的位置",str1.rfind("o"))

print("zzz出现的位置",str1.find("zzz"))  #-1 异常值

#获取world
ind=str1.find("world")
print(str1[ind:])

3>count

#统计某子串在元素中出现的次数操作count
str1="hello_world"
print("元素o出现的次数",str1.count("o"))

4>字符串的分割操作

#如果分隔符不存在于字符串,返回原始字符串,且被生成列表的形式
str1="my name is mike"
tmp=str1.split(" ") #指定按照特定元素子串进行拆分
# tmp=str1.split("zzz")  #['my name is mike']
print(type(tmp))  #<class 'list'>
print(tmp)

5>字符串的修饰操作

#1.center
str1="字符串的修饰"
str2=str1.center(60,'-')  #长度为60,修饰符为-
print(str2)

#2.zfill
#常用于数值型
str1="123"
str11="12345"
str2=str1.zfill(8)
str3=str11.zfill(8)
print(str2)
print(str3)

#3.strip
#strip去除字符串左右两边的空格或其他符号
str1=" 12 34 "
print("原字符串长度",len(str1))
str2=str1.strip()
print(str2) #去除字符串左右两边的空格
print("去除字符串左右两边的空格后字符串长度",len(str2))

str1="******12 34*****"
print("原字符串长度",len(str1))
str2=str1.strip("*")
print(str2) #去除字符串左右两边的*
print("去除字符串左右两边的空格后字符串长度",len(str2))

6>字符串的格式化

格式化输出形式1–format

name="张三"
age=20
print("你好",name,"你的年龄是",age,sep='')
#格式化字符串 .format
#使用{} 作为占位符
str1="你好{},你的年龄是{}".format(name,age)
print(str1)

#张三你好,张三的年龄
str1="{}你好,{}的年龄是{}".format(name,name,age)
print(str1)
#优化:关注参数位置顺序(位置参数)
str1="{0}你好,{0}的年龄是{1}".format(name,age)
print(str1)
#优化:不用关心参数顺序(关键字参数)
str1="{name}你好,{name}的年龄是{age}".format(age=age,name=name)
print(str1)

#对精度的控制:.2f
height=50.2
print("{name}你好,{name}的年龄是{age},{name}的身高是{height:.2f}".format(age=age, name=name, height=height))

格式化输出形式2

print("%s你好,年龄是%d,身高是%.2f" % (name,age,height))

Guess you like

Origin blog.csdn.net/weixin_45800653/article/details/121365053