Python基础学习Day_02

引言

        hello啊·,兄弟们,今天是工作之余,学习python的第二天,如果把这当作教学帖子,可能还不太专业,我是java开发的转python数据分析,爬虫和机器学习的,所以有一定的语言基础,学习python语言可能比较快,但是后面的速度肯定会放下来,毕竟稳定基础嘛,今天是夜晚9点开始学习,听着网课,打着代码,当然我有一些别的培训班的朋友给的文档,啊哈哈,到现在已经11点了,不能再学了,赶紧写个帖子洗洗睡了。明天还要上班呢,今天学的东西有:数据类型的转化,流程控制,字符串的格式化,列表以及元组。下面且听我娓娓道来(当然我只是记笔记哈)

1数据类型转换

1整数类型

整数类型有四种,二进制,八进制,十进制,十六进制

# 二进制转化为十进制
num3 = "101010"
# 当要进行约束进制转化 , str类型
print("十进制", int(num3, 2))

# 八进制转化为十进制
num4 = "52"
print("八进制", int(num4 , 8))
# 十六进制转化为十进制
num5 = "78"
print("十六进制",int(num5, 16))

2.浮点类型

浮点是就是小数,在python没有单精度和双精度之分。

但值得注意的是,浮点数转整形以后没有四舍五入,只有舍去。

# 浮点数
num = 10 #int 整型
num1 = 10.1 # float 浮点型
print(type(num))
print(type(num1))

# 浮点数的转化
float(num) # 不需要重新接收
print(float(num))
print(int(num1))
# 浮点数变整数,不会四舍五入,只会舍
num_1= 20
num_2 = 20.2
print(type(num_1))
print(type(num_2))
print(float(num_1))

3.复数类型

复数就是数学中的a=b+ci的形式,再次不多介绍,讲一下数学类中方法。

import math
# 了解一下数学类
math.pi
print(3 ** 2)
print(2 ** 5)
print(math.pow(2,5))
# 取绝对值 ,fabs绝对值返回的始终是是浮点数,使用fabs的时候需要导入math模块
print(math.fabs(-8))
# 向上取整
num2 = math.ceil(4.1)
print(num2)
# 向下取整
num3 = math.floor(4.1)
print(num3)
# 立方    第一个参数是底数,第二个参数是幂数
# print(math.pow(2,3))
math.pow(2,3)

# 内置函数
num5 = max(5, 6)
print(num5)
num6 = min(5, 6)
print(num6)
# 绝对值变化,abs是通用的函数,不需要导入math函数,可以直接使用
num7 = abs(-8)
print(num7)

4.布尔类型

这个就比较简单了,true就是true,false就是false,但值得注意的是none不是布尔类型,但是用tool()转化为布尔类型的话是false

# not 运算是非
flag3 = not True
print(flag3)

flag6 = bool(None)
print(flag6)

flag7 = None
print(type(flag7))

输出结果:

False
False
<class 'NoneType'>

5.其他

其中还有一些运算符和计算器,太简单了,为了节省时间我就不写了,运算符就是加减乘除,或与非,取余这一类的

2字符串

相信大家都会创建字符串,所以我从下一步开始。

1.字符串截取  [start:end:step]

start是从哪个数开始,如果是负数,那就倒着数。

end是从哪个数结束,如果是复数,那就倒着数,截取数量由start和end决定

step是步长,比方说step是3,那就隔2个数截取,如果step是2,那就隔1个数截取,如果是-1,那就倒着截取

word = "Python"
print(word[-1:3:-1])     #no
print(word[-4:-7:-1])    #tyP
print(word[-4:-7:2])     #’‘

2.split(self,sep,maxsplit)

self是需要截取的字符串

sep是以什么为基准截取,默认是空字符串

maxsplit是最大截取多少个,默认是-1,一直截取

str3 = 'hello * my name * is List'
print(str3.rsplit("*",1))

['hello * my name ', ' is List']

这是从左到右截取,还有个从右到左截取的函数rsplit(),用法和split()一致。

3.字符串的格式化

3.1 % 格式化字符串 %s占位符

message = "我名字是:%s,今年%d岁,考了%f分" %(name, age, score) # %只能有一个
print(message)

输出结果:
我名字是:狗岁,今年18岁,考了100.000000分

这种占位符有多种,一下罗列了一些,当然不是我找的,没有时间,哈哈哈,我朋友给的

1、%s 传输的类型是str类型
2、%s 格式化多个类型
3、%d 传输类型是整数
4、%f 传输的是浮点数
5、%x 传输的是16进制的数字
6、%o 传输的是8进制的数字
7、%c 传输的是ASCII 字符
8、%e 科学计数法

3.2  format()按照位置访问参数

两种方式,第一种,{}里写参数,在后面format里面参数对应值即可,第二种{0},括号里面写下标,format对应下标写即可,代码如下:

j = int(input("您所在的经度是:"))
w = int(input("您所在的维度是:"))
# 第一种:
print("您所咋的经纬度,经度是:{jj},维度是{ww}1".format(jj = j, ww = w))
# 第二种
print("您所咋的经纬度,经度是:{0},维度是{1}3".format(j, w))

3.3 前面用f,参数用{}

这个我在昨天的帖子也写过,但是不理解,今天理解了,话不多说,上代码。

print(f"我是{'sure'}")
print(f"""我是{'sure'}""")
print(f'我是{"sure"}')


输出结果:
我是sure
我是sure
我是sure

4.字符串的一些高级函数

其实这个我不想写的,困死了,已经写了一小时了都快,现在是北京时间2024年7月10日23点55分,还有5分钟就7月11日了,加油吧。直接上代码。


str1 = " Hello World!  "

# split()    指定字符类型进行切割,返回的是列表    
str1_1 = str1.split()

# strip()    去除两边的空格键                      
str1_2 = str1.strip()

# join()     字符串拼接,中间用某个字符串隔开
word = ['hello', 'world']
new_word = ", ".join(word)

# replace()   字符串的替换
str2 = "Hello Python!"
str2_1 = str2.replace("Python", "World")


# 对字符串判比的操作:
# 检测字符串是否只由字母组成
str3 = "asdfg"
print(str3.isalpha())

# 检测字符串是否只有数字组成
str4 = "23455"
print("23455",str4.isdecimal())
str5 = "4354101010"
print("4354101010",str5.isdigit())
str6 = "154一贰叁四"
print("154一贰叁四",str6.isnumeric())

# 所有的字母都是小写
str7 = "alsdhkf"
print(str7.islower())

# 所有的字母都是大写
str8 = "LKSDHG"
print(str8.isupper())

# 判断是否是一个标题,每个单词首字母是否大写
str9 = "Where Are You From"
print(str9.istitle())


# 字符串的查找跟替换
# 检查字符串是否以指定的单词开头
str10 = "Where Are You Are From"
print(str10.startswith("Where"))

# 检查字符串是否以指定单词结尾
print(str10.endswith("From"))

# 该字符串中是否有指定单词 返回为索引 正查找
print("是否有指定单词",str10.find("Are"))

# 逆查找
print("aaaaaaaa",str10.rfind("Are"))

# 替换
print(str10.replace("o","O"))

# 大小写替换
str11 = "where Are You From"

print(str11.capitalize()) # 开头字母变为大写

print(str11.upper()) # 全部变为大写

print(str11.lower()) # 全部变为小写

# 拆分和链接 partition() 按照第一个,分的。分成三位
str12 = "www.baidu.com"
print(str12.partition(".")) # 按空字符切割会报元素错误
str13 = "1+2.txt+3+4=10"
print(str13.partition("="))

# 字符串运算 +加号表示拼接
s1 = "10"
s2 = "20"
s3 = s1 + s2



# 文本对齐
 " ".ljust()  #左对齐
 " ".rjust()  #右对齐
 " ".center() #居中

3.流程控制

很好,现在时间来到了00:01了,加快时间了。

这里主要是for循环和while循环,也没啥知识点,给大家看两个案例学一下吧,我真的不是困了。

for循环

# 水仙花:153 = 1*1*1 + 5*5*5 + 3*3*3
录入一个数字,判断是否为水仙花

 num = input("请输入一个数字:")
 num1 = int(num)

 if 100 <= num1 < 1000:
     print("输入的格式正确,正在确定ing")
     num_ge = int(num[2])
     num_shi = int(num[1])
     num_bai = int(num[0])
     if math.pow(num_ge,3) + math.pow(num_bai,3)+math.pow(num_shi,3):
         print(f"{num}是水仙花数")
     else:
         print(f"{num},不是水仙花")
 else:
     print("输入的格式不正确")

while循环

 #小王给王小美告白:20次
 i = 1
 while i <= 20:
     print("小王爱王小美",i)
     i += 1

结束循环的三种方式:

1.循环结束,这个如果遇到死循环那就出不去

2.break ,这个直接直接所有循环

3.containue, 这个是跳出这个循环,进入下一个循环

4.列表和元组

列表和元组就特别像java中的list和数组,列表和元组之间的区别就是列表长度可变,可以添加和删除,但是元组长度固定,不可变,实用性来说我更偏向于列表,但是我也是初学者,后期方向我也不知道哈。话不多说开始学习吧。

1.列表

列表:有序的可变序列,随时添加或者删除一个元素

列表数据存储:可以存储各个类型的数据

列表的增删改查

1:append() 追加在列表的末尾

l1 = ["奥特曼", "变形金刚"] l2 = [ 1, 2, 3, 4, 5, 6, 7, 8, 9] l2.append("张三") print(l2)

2:insert() 根据索引追加

l2.insert(1, "啦啦啦")

3:.extend()

l2.extend(l1)

列表的删除

1:del l2[] 按照索引值来进行删除的

del l1[0] print(l1)

2:直接删除列表的最后一位 pop()

l1.pop() print(l1)

3:remove() 根据元素的值删除的

l1.remove(3) print(l1)

4:clear() 清空

l1.clear() print(l1)

列表的修改

l1[2] = "枪" print(l1)

列表的查找

1、index 根据元素内容,匹配相关索引值,查找某元素位置

index_name = l1.index("剑") print(index_name)

2、count 查找元素出现的总次数

count = l1.count("刀") print(count)

3、迭代进行元素输出并比较

l1 = ["剑", 1, 2, 3] for i in l1: if i == "剑": print(i)

列表的切片

[start : end : step]

切片开始的值:结束的值:步长

列表的应用

排序sort(正序,从小到大)、翻转

2.列表推导式

[表达式 for 变量 in 列表] 
[a for b in c]
a:列表生成元素表达式,可以是有返回值的函数。
b:迭代 input_list 将 a 传入到 b 表达式中。

举个例子

num_1 = [1, 2, 3, 4, 5, 6]
num_11 = [num1 for num1 in num_1 if num1 % 2 == 0]
print(num_11)


输出结果:
[2,4,6]

解释:
num_1:这是一个已经存在的列表,列表推导式会遍历这个列表中的每个元素。

for num1 in num_1:这是一个循环,表示遍历 num_1 列表中的每个元素,并将当前元素赋值给变量 num1。

if num1 % 2 == 0:这是一个条件判断,用于检查变量 num1 是否是偶数。如果是偶数(即 num1 除以 2 的余数为 0),则当前元素 num1 会被包含在结果列表中。

[num1 for num1 in num_1 if num1 % 2 == 0]:整个表达式是一个列表推导式,它根据条件判断从 num_1 列表中筛选出所有偶数,并将这些偶数组成一个新的列表。

num_11 = ...:最后,将列表推导式的结果赋值给变量 num_11。

3.元组

概念:元组跟列表相似。

元组是不可变的序列。一旦创建就不可修改任何元素

想要修改只能重新接收该数据;

结语

实在不行了,太困了,现在时间是00:21,明天还要上班,狗命要紧,赶紧睡觉,今天也是要做python大神的一天,兄弟们,mai起!

  • 19
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值