Python基础学习(一)

前言:Python是一个高层次的结合了解释性,编译性,互动性和面向对象的脚本语言。

1.Python数据类型

分类:

1.数值:int(整型);float(浮点型)

2.布尔型:True(真);False(假)

3.str(字符串)

4.list(列表)

5.tuple(元组)

6.set(集合)

7.dict(字典)

检测数据类型的方法:type(变量名或者数值)

​
1.按经验将不同的变量存储不同的类型的数据
2.验证这些数据到底是什么类型-检测数据类型--type(数据)
"""
num1=1
num2=1.1
#int--整型
type(num1)
print(type(num1))
# float--浮点型,就是小数
print(type(num2))
# str--字符串,特点:数据都要带引号
a="hello,world"
print(type(a))
# bool--布尔型,通常判断使用,布尔型有两个取值True和False
b=True
print(type(b))
#list --列表
c=[10,20,30]
print(type(c))
# tuple--元组
d=(10,20,30)
print(type(d))
#set--集合
e={10,20,30}
print(type(e))
#dict--字典--键值对
f={'name':'Tom','age':18}
print(type(f))


​

思考:为什么Python会提出这么多的数据类型?

有限的内存,无限的变量,合理的使用内存。

2.输出

作用:程序输出内容给用户

print("hello,world")
age=18
print(age)  #18

1.格式化输出

常用的格式化输出

格式符号 转换 %s 字符串 %d 有符号的十进制整数 %f 浮点数 %c 字符

注意:%06d,表示输出的整数显示位数,不足以0补全,超出则按原样输出。

%0.2f,表示小数点后显示的小数位数。

2.内置函数format

format()用于字符串格式化,功能非常强大,格式是str.format(),format函数可以接受不限个函数,位置可以不按顺序。

3.f-格式化字符串

格式为:f'{表达式}'

练习示例:

1.准备数据
2.格式化符号输出数据
"""
age=18
name='TOM'
weight=75.5
stu_id=1
#1.今年我的年龄是x岁 --整数 %d
print("今年我的年龄是%d岁" %age)
#2.我的名字是x  --字符串 %s
print("我的名字是%s" %name)
#3.我的体重是x公斤  --浮点数 %f
print("我的体重是%f公斤" %weight)
#4.我的学号是x   --%d
print("我的学号是%d" %stu_id)
print("我的学号是%03d" %stu_id)  #学号三位数
#5.我的名字是x,今年x岁了
print("我的名字是%s,今年%d岁了" %(name,age))
#5.1 我的名字是x,明年x岁了
print("我的名字是%s,明年%d岁了" %(name,age+1))
#6.我的名字是x,今年x岁了,体重x公斤,学号是x
print("我的名字是%s,今年%d岁了,体重%0.2f公斤,学号是%03d" %(name,age,weight,stu_id))
今年我的年龄是18岁
我的名字是TOM
我的体重是75.500000公斤
我的学号是1
我的学号是001
我的名字是TOM,今年18岁了
我的名字是TOM,明年19岁了
我的名字是TOM,今年18岁了,体重75.50公斤,学号是001

4.转义字符

  • \n:换行
  • \t:制表符,一个tab键的距离

3.输入

输入的特点:

  • 当程序执行到input,等待用户输入,输入完成之后才继续向下执行
  • 在Python中,input接收用户输入后,一般存储到变量方便使用。
  • 在Python中,input会把接受收到的任意用户输入的数据当作字符串处理。
password=input("请输入您的密码:")
print(f'您输入的密码是{password}')
print(type(password))
请输入您的密码:1234
您输入的密码是1234
<class 'str'>

4.转换类型

常用转换数据类型的函数

函数 说明 int(x,[base]) 将x转换为一个整数 float(x) 将x转换为一个浮点数 str(x) 将对象x转为一个字符串 eval(str) 用来计算在字符串中的有效Python表达式,并返回一个对象 tuple(s) 将序列s转换为一个元组 list(s) 将序列s转换为一个列表

转换数据类型示例:

#1.接收用户输入
num=input("请输入您的幸运数字:")
#2.打印结果
print("您的幸运数字是%s" %num)

#3.检测接收到的用户输入的数据类型
print(type(num))

#4.转换数据类型为整型--int类型
print(type(int(num)))
请输入您的幸运数字:7
您的幸运数字是7
<class 'str'>
<class 'int'>
#1.folat()---转成为浮点型
num1=1
print(float(num1))
print(type(float(num1)))

#2.str()----转成字符串型
num2=10
print(type(str(num2)))

#3.tuple()---转成元组
list1=[10,20,30]
print(tuple(list1))
print(type(tuple(list1)))

#4.list()---转换为列表
t1=(10,20,30)
print(list(t1))
print(type(list(t1)))

#5.eval()--将字符串转成Python表达式原本类型
str1='10'
str2='[1,2,3]'
str3='(100,200,300)'
print(type(eval(str1)))
print(type(eval(str2)))
print(type(eval(str3)))
1.0
<class 'float'>
<class 'str'>
(10, 20, 30)
<class 'tuple'>
[10, 20, 30]
<class 'list'>
<class 'int'>
<class 'list'>
<class 'tuple'>

5.条件语句

1.if语法

if 条件:

        条件成立执行的代码1

        条件成立执行的代码2  .....

示例:

if True:
    print("条件成立执行的代码1")
    print('条件成立执行的代码2')
#下方的代码没有缩进到if语句块,所以和if条件无关
print('我是无论条件是否成立都要执行的代码')

示例演示:

例子:网吧上网

#如果用户年龄大于等于18岁,即成年,输出'已经成年,可以上网'
age=int(input('请输入您的年龄:'))
if age>18:
    print("您的年龄是%s岁,已经成年,可以上网" %age)
print("系统关闭")
请输入您的年龄:20
您的年龄是20岁,已经成年,可以上网
系统关闭

2.if...else...

if 条件:

     条件成立执行的代码1

     条件成立执行的代码2 。。。

esle :

     条件不成立执行的代码1

     条件不成立执行的代码2 。。。

if..else..练习示例:

age=int(input('请输入您的年龄:'))
if age>18:
    print("你的年龄是%s岁,已经成年,可以上网" %age)
else:
    print("您的年龄是%s岁,未成年,回家啊写作业" %age)
print('系统关闭')
请输入您的年龄:18
您的年龄是18岁,未成年,回家啊写作业
系统关闭

3.多重判断

if 条件1:

     条件成立执行的代码1

     条件成立执行的代码2。。。

elif 条件2:

     条件2成立执行的代码1

     条件2成立执行的代码2。。。

.。。。

else:

        以上条件都不成立时执行的代码

示例:工龄判断

age=int(input('请输入您的年龄:'))
if age<18:
    print(f'您的年龄是{age},童工一枚')
elif(age>=18)and{age<=60}:
    print(f'您的年龄是{age},合法工龄')
elif age>60:
    print(f'您的年龄是{age},达到退休水平')
请输入您的年龄:17
您的年龄是17,童工一枚

4.if 嵌套 

 if 条件1:

        条件1成立执行的代码

          条件1成立执行的代码

   if 条件2:

       条件2成立执行的代码

         条件2成立执行的代码

演示示例:坐公交车

money=1 #金额
seat=0 #座位数
if money==1:
    print('大富人家,顺利上车')
    if seat==1:
        print("有空位,可以坐下")
    else:
        print("没有空座,站等")
else:
    print("没钱,不能上车")
大富人家,顺利上车
没有空座,站等

案例分析:猜拳游戏

需求分析:

  • 参与游戏的角色
  • 随机出拳
  • 手动出拳
  • 玩家
  • 电脑

  判断输赢:      

玩家电脑
石头剪刀
剪刀
石头
  • 玩家出拳和电脑出拳相同
  • 平局
  • 电脑获胜
  • 玩家获胜

随机做法:

1.导出random模块

import 模块名

2.使用random模块中的随机整数功能

random.randint(开始,结束)

# 导入random模块
import random
# 计算电脑出拳的随机数字
computer =random.randint(0,2)
print(computer)

player =int(input("请出拳:0-石头,1-剪刀,2-布:"))
# 玩家胜利p0:c1或p1:c2或p2:c0
if(player==0 and computer==1) or(player==1 and computer==2) or(player==2 and computer==0):
     print("玩家胜利")
elif player == computer:
    print("平局")
else:
    print("电脑获胜")
2
请出拳:0-石头,1-剪刀,2-布:1
玩家胜利

升级版:猜拳游戏:

import random
import sys
print("---欢迎来到人机对战小游戏---")
name=input("请输入您的游戏名:")
while True:
    stats =input("欢迎”%s“来到本游戏,开始游戏输入Y,退出游戏输入N,请您输入:" %name)
    if stats =='Y' or stats =='y':
       print('游戏开始。。。')
       print("0-石头,1-剪刀,2-布")
       break
    elif stats  =='n'or stats=='N':
       print("游戏结束。。。")
       sys.exit(0)
    else:
       print("请按照要求重新输入!")
print("--------------加载中-------------")

def Game(user,comp):
    if(user==0 and comp==1) or(user==1 and comp==2) or(user==2 and comp==0):
        print("机器输入%d,您赢了!" %comp)
    elif user==comp:
        print('机器输入%d,平局了' %comp)
    else:
        print("机器输入%d,您输了" %comp)
    res=input("重新进入游戏请输入X,退出游戏按任意键")
    if res=='X'or res=="x":
        return
    else:
        sys.exit(0)

while True:
    user=int(input("请您出拳,输入相应的数字!"))
    if user==0 or user==1 or user==2:
        comp=random.randint(0,2)
        Game(user,comp)
    else:
        print("输入数字有误,请重新输入!")
请输入您的游戏名:李清流
欢迎”李清流“来到本游戏,开始游戏输入Y,退出游戏输入N,请您输入:y
游戏开始。。。
0-石头,1-剪刀,2-布
--------------加载中-------------
请您出拳,输入相应的数字!0
机器输入0,平局了
重新进入游戏请输入X,退出游戏按任意键x
请您出拳,输入相应的数字!2
机器输入1,您输了
重新进入游戏请输入X,退出游戏按任意键s

6.循环简介

6.1循环的分类:在Python中,循环分为while和for两种,实现效果相同

6.2 while的语法:

while 条件:

        条件成立重复执行的代码1

        条件成立重复执行的代码2.。。。

while循环案例:

需求:重复执行5次print(“hello,world”)。


i=1
while i<=5:
    print("hello,world,第%s次执行" %i)  
    i+=1
print("执行结束!")
hello,world,第1次执行
hello,world,第2次执行
hello,world,第3次执行
hello,world,第4次执行
hello,world,第5次执行
执行结束!

while的应用一:

计算1-100累加和

i=1
result=0
while i<=100:
    result+=i
    i+=1
print("输出结果:%s" %result)  #5050

应用二:

计算1-100偶数累加和

"""

偶数即是和2取余结果为0的数字,可以加入条件语句判断是否为偶数,为偶数则累加
初始值为0/2,计数器每次累加2
"""
i=1
result=0
while i<=100:
    if i%2==0:
        result+=i
    i+=1
#输出结果2550
print(result)

6.3 break和continue

break和continue是循环中满足一定条件退出循环的两种不同方式。

break和continue都是控制循环流程,break即终止此循环,continue即退出当前一次循环继而执行下一次循环代码

break示例:

i=1
while i<=5:
    if i==4:
        print(f'吃饱了不吃了')
        break
    print(f'吃了第{i}个苹果')
    i+=1
"""
吃了第1个苹果
吃了第2个苹果
吃了第3个苹果
吃饱了不吃了
"""

contnue实例:

i=1
while i<=5:
    if i==3:
        print(f'我喜欢吃苹果,但是第{i}个不吃了')
        i+=1
        continue
    print(f'吃了第{i}个苹果')
    i+=1
"""
吃了第1个苹果
吃了第2个苹果
我喜欢吃苹果,但是第3个不吃了
吃了第4个苹果
吃了第5个苹果

"""

6.4 while循环嵌套

while 条件1:

        条件1成立执行的代码。。。

        while 条件2:

               条件2成立执行的代码。。。

while循环嵌套应用

应用一:打印星号(正方形)

#重复打印5行星星
j=0
while j<=4:
    #内循环控制打印的星星个数
    i=0
    while i<=4:
        print('*',end='')  #一行内的星星不能换行,所以取消print中的换行字符
        i+=1
    print() #每打印一行进行换行
    j+=1


*****
*****
*****
*****
*****

应用二:打印九九乘法表

# 重复打印9行表达式
j=1
while j<=9:
   #打印一行里面的表达式a * b=a*b
   i=1
   while i<=j:
       print(f'{i}*{j}={i*j}',end='\t')
       i+=1
   print()
   j+=1


####
1*1=1	
1*2=2	2*2=4	
1*3=3	2*3=6	3*3=9	
1*4=4	2*4=8	3*4=12	4*4=16	
1*5=5	2*5=10	3*5=15	4*5=20	5*5=25	
1*6=6	2*6=12	3*6=18	4*6=24	5*6=30	6*6=36	
1*7=7	2*7=14	3*7=21	4*7=28	5*7=35	6*7=42	7*7=49	
1*8=8	2*8=16	3*8=24	4*8=32	5*8=40	6*8=48	7*8=56	8*8=64	
1*9=9	2*9=18	3*9=27	4*9=36	5*9=45	6*9=54	7*9=63	8*9=72	9*9=81	

6.5 for循环

语法:

for 临时变量 in 序列:

        重复执行的代码1

        重复执行的代码2.。。。

应用:

str='hello,world'
for i in str:
    print(i,end="\t")


# h	e	l	l	o	,	w	o	r	l	d	

七,字符串

字符串是Python中最常用的数据类型,一般使用引号来创建字符串。

a=''hello,world'

b='abcdefg'

print(type(a))

print(type(b))

注意:控制台显示结果为<class 'str'>,即数据类型str(字符串)

1.字符串输入

在Python中,使用input()接收用户输入。

name=input('请输入您的姓名:')
print(f'您输入的姓名是{name}')
print(type(name))

password=input("请输入您的密码:")
print(f'您输入的密码是:{password}')
print(type(password))

-------------!---------
请输入您的姓名:李清流
您输入的姓名是李清流
<class 'str'>
请输入您的密码:123456
您输入的密码是:123456
<class 'str'>

2.下标

下标又称为索引,就是编号。

例如:

字符串name='abcdefg',取到不同下表对应的数据。

name="abcdefg"
print(name[0])
print(name[1])
print(name[2])



a
b
c

3.切片

切片是指对操作的对象截取其中一部分的操作。字符串,列表和,元组都是可以支持切片操作。

语法:序列 [开始位置下标,结束位置下标:步长]

注意:不含结束位置下标对应的数据,正负数均可;步长是选取间隔,正负数均可,默认步长为1

name="abcdefg"

print(name[2:5:1])  #cde
print(name[2:5])    #cde
print(name[:5])     #abcde
print(name[1:])     #bcdefg
print(name[:])      #abcdefg
print(name[::2])    #aceg

常用操作方法:

  • find():检测某个字串是否包含在这个字符串中,如果在,返回这个字串开始位置的下标,否则则返回-1;语法格式:字符串序列.find(字串,开始位置下标,结束位置下标)
  • index():检测某个字串是否包含在这个字符串中,如果在,则返回这个字串出现的开始位置下标,否则报异常;语法格式:字符串序列.index(字串,开始位置下标,结束位置下标)
mystr="hello world and apple and oranges and Python"
print(mystr.find('and'))       #12
print(mystr.find('and',15,30))  #22
print(mystr.find('ands'))      #-1
mystr="hello world and apple and oranges and Python"
print(mystr.index('and'))       #12
print(mystr.index('and',15,30))  #22
print(mystr.index('ands'))      #报错
  • rfind():和find()功能相同,但查找方向为右侧开始。
  • rindex():和index()功能相同,但查找方向为右侧开始。
  • count():返回字串在字符串中出现的次数。语法格式:字符串序列.count(字串,开始位置下标,结束位置下标)
  • replace():替换字符串。字符串序列.replace(旧字串,新字串,替换次数)
  • split():按照指定字符分割字符串。语法格式:字符串序列.split(分割字符,num);num表示的是分割字符出现的次数,即将来返回数据字数为num+1个。
  • join():用一个字符或字串合并字符串,即是将多个字符串合并为一个新的字符串。语法:字符或字串.join(多字符串组成的序列)

八.列表

1.格式:[数据1,数据2,数据3,数据4.。。。。]

列表的常用操作:增,删,改,查

例如:查询

  • index():返回指定数据所在的位置的下标。语法:列表序列.index(数据,开始位置下标,结束位置下标)
  • count():统计指定数据在当前列表中出现的次数。
  • len():访问列表长度,即列表数据的个数。
name_list=['Tom','Lily','Rose']
print(len(name_list))   #3
print(name_list.count('Lily'))  #1
print(name_list.index('Lily',0,2))  #1

2.判断是否存在

  • in:判断指定数据在某个列表序列,如果在返回True,否则返回False.
  • not in:判断指定数据不在某个列表序列,如果在返回True,否则返回False.
name_list=['Tom','Lily','Rose']

print('Lily' in name_list)  #True
print('Lilys' in name_list) #False
print('Lily' not in name_list) #False
print('Lilys' not in name_list) #True

3.增加

作用:增加指定数据到列表中。

  • append():列表结尾追加数据。语法:列表序列.append(数据)
  • extend():列表结尾追加数据,如果数据是一个序列,则将这个序列逐一添加到列表。语法:列表序列.extend(数据)
  • insert():指定位置新增数据。语法:列表序列.insert(位置下标,数据)
name_list=['Tom','Lily','Rose']

name_list.append("xiaoming")
#print(name_list)  #['Tom', 'Lily', 'Rose', 'xiaoming']

name_list.append(['xiaoming','xiaohong'])
print(name_list)  #['Tom', 'Lily', 'Rose', 'xiaoming', ['xiaoming', 'xiaohong']]

name_list.insert(1,'yingying')
print(name_list) #['Tom', 'yingying', 'Lily', 'Rose', 'xiaoming', ['xiaoming', 'xiaohong']]

4.删除

  • del 目标
  • pop():删除指定下标的数据(默认为最后一个),并返回该数据,
  • clear():清空列表。
name_list=['Tom','Lily','Rose']

 # del name_list
print(name_list)   #IndentationError: unexpected indent

#del name_list[0]
print(name_list)  #['Lily', 'Rose']
del_name=name_list.pop(1)
print(del_name)   #Lily

name_list.clear()
print(name_list)  #[]

5.修改

  • 逆置:reverse()
  • 排序:sort()
name_list = ['Tom', 'Lily', 'Rose']
name_list[0]='aaa'
print(name_list)   #['aaa', 'Lily', 'Rose']
num_list=[1,5,3,9,8,6]
num_list.reverse()
print(num_list)  #[6, 8, 9, 3, 5, 1]
num_list.sort()
print(num_list)  #[1, 3, 5, 6, 8, 9]

列表的循环遍历

1.while 或for

name_list = ['Tom', 'Lily', 'Rose']

i=0
 while i<len(name_list):
    print(name_list[i])
    i+=1


for i in name_list:
    print(i)

九,元组

一个元组可以存储多个数据,元组内的数据是不能修改的。元组使用小括号,且逗号隔开各个数据,数据可以是不同的数据类型。

#多个数据元组
t1=(10,20,30)
#单个数据元组
t2=(10,)
print(type(t2))  #tuple

t3=(20)
print(type(t3)) #<class 'int'>

t4=('HELLO')
print(type(t4))  #<class 'str'>

2.元组常见操作

元组数据不支持修改,只支持查找。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值