Python学习第三课-基本数据类型

一、基本概念

1.1表达式

表达式,是由数字、算符、数字分组符号(括号)、自由变量和约束变量等以能求得数值的有意义排列方法所得的组合

1.2语句

在这里插入图片描述

1.3程序

相当于一个功能

1.4函数

查看函数 command+鼠标左键

def xxx():
    pass #占位,相当于完成函数

内置函数

内部已经有的函数

自定义函数

自己定义的函数

参数

a = input("请输入输入") #输入语句 ()的就是参数

返回值

函数执行的结果

二、标识符

2.1 关键字

查看关键字

#导入keyword 模块
import keyword
#显示所有关键字
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’]

2.2标识符概念

  • 组成
    标识符有字母、数字、下划线组成
  • 命名规范
    1. 标识符是由字符(A~Z 和 a~z)、下划线和数字组成,但第一个字符不能是数字。
    2. 标识符不能和 Python 中的保留字相同。
    3. Python中的标识符中,不能包含空格、@、% 以及 $ 等特殊字符。

例如,下面所列举的标识符是合法的:

UserID
name
mode12
user_age

以下命名的标识符不合法:

4word    #不能以数字开头
try          #try是保留字,不能作为标识符
$money #不能包含特殊字符

驼峰命名法

  • 小驼峰
    变量一般用小驼峰法标识。驼峰法的意思是:除第一个单词之外,其他单词首字母大写。譬如
int myStudentCount; #变量myStudentCount第一个单词是全部小写,后面的单词首字母大写。

常用于函数名。

  • 大驼峰
    大驼峰法(即帕斯卡命名法)把第一个单词的首字母也大写了。常用于类名,属性,命名空间等

下划线命名法

my_name

三、数据类型

3.1整数和小数

  • 整数(int)
  • 小数(float)
    在这里插入图片描述

3.2布尔值和空值

  • 布尔:True和False
  • None常量:空值

3.3字符串

  • 数字、字母、下划线
  • 单引号,双引号成对的引号

3.3.1转义字符

转义字符意义
\n换行
\t跳到下一个tab位置
\r回车
r保持原来字符串的效果
\转移还原本意。标识后面的一个字符不具有特殊意义

3.3.2长字符串

  • python里使用某个东西的规则
  • python里面使用的东西要么是python自带所拥有的的,那么你就可以用
  • 如果不是python所自带的。那么你必须先声明这个东西,你才可以用
3.3.2.1作用
  • 1.保持文本的格式的作用
  • 2.作为一个注释的作用
  • 字符串的表示 Str
  • ‘’‘ 三引号
    在这里插入图片描述
3.3.2.2格式化字符串
  • 第一种格式化字符串,拼串
a ="a"
b ="b"
print(a+b)

结果

ab

  • 第二种格式化字符串,参数传递
  • 第三种格式化字符串,占位符
s="我爱你%s"%"china"
print(s)

结果

我爱你china

%s 字符串占位
%f 浮点数占位
%d 整数占位

  • 第四种格式化字符串f{变量}’
str.format ()
a ="中国"
s=f"我爱你{a}"
print(s)

我爱你中国

  • 第五种格式化字符串{}.format()’
a ="中国"
c="我爱你{}".format(a)
print(c)

我爱你中国

3.3.2.3操作函数
max(str)

返回字符串 str 中最大的字母。

min(str)

返回字符串 str 中最小的字母。

  • string.split(str="", num=string.count(str))
    以 str 为分隔符切片 string,如果 num 有指定值,则仅分隔 num+1 个子字符串
 string.partition(str)

有点像 find()和 split()的结合体,从 str 出现的第一个位置起,把 字 符 串 string 分 成 一 个 3 元 素 的 元 组 (string_pre_str,str,string_post_str),如果 string 中不包含str 则 string_pre_str == string.

a="我爱你中国"
print("max(str)结果为'{}'".format(max(a)))
print("min(str)结果为'{}'".format(min(a)))
print("string.split结果为'{}'".format(a.split('爱你')))
print("string.partition(str)结果为'{}'".format(a.partition('爱你')))

结果如下:

max(str)结果为’爱’
min(str)结果为’中’
string.split结果为’[‘我’, ‘中国’]’
string.partition(str)结果为’(‘我’, ‘爱你’, ‘中国’)’

str.join(sequence)

Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。

str = "-";
seq = ("a", "b", "c"); # 字符串序列
print str.join( seq );

结果如下:

a-b-c

str.index()

Python index() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,该方法与 python find()方法一样,只不过如果str不在 string中会报一个异常。

str1 = "this is string example....wow!!!";
str2 = "exam";
print(str1.index(str2))
print(str1.index(str2, 10))
print(str1.index(str2, 40))

结果如下:

15
15
Traceback (most recent call last):
File “/Users/mianhua/PycharmProjects/python/2021/2121年4月15日/01.py”, line 5, in
print(str1.index(str2, 40))
ValueError: substring not found

Python find()

Python find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。

str1 = "this is string example....wow!!!";
str2 = "exam";
print(str1.find(str2))
print(str1.find(str2, 10))
print(str1.find(str2, 40))

结果如下:

15
15
-1

四、变量

4.1 存储内容

  • id:内存地址
  • type :数据类型
  • value:值

在这里插入图片描述
在这里插入图片描述

作业1

a,b= 6, 8。 我想让a=8 b=6 我该怎么办?用2种方式实现

def demo1(a,b):#创建临时变量 temp ,并将 a 的值存储在 temp 变量中,接着将 b 值赋给 a,最后将 temp 赋值给 b 变量。
    temp = a
    a = b
    b = temp
    print('交换后a的值为: {}'.format(a),'交换后b的值为: {}'.format(b))
def demo2(a,b):
    a,b = b,a
    print(a,b)
def demo3(a, b):
    a = a + b
    b = a - b
    a = a - b
    print(a,b)
if __name__ == '__main__':
    demo1(6,8)
    demo2(6,8)
    demo3(6,8)

结果如下:

8 6
8 6
8 6

#update——实现输入任意整数,交换位置
a = int(input('输入a值: '))
b = int(input('输入b值: '))
def demo1(a,b):#创建临时是变量
    temp = a
    a = b
    b = temp
    print(a,b)
def demo2(a,b):#交换位置
    a,b = b,a
    print(a,b)
def demo3(a, b):#数学计算法,加法,乘法都可以
    a = a + b
    b = a - b
    a = a - b
    print(a,b)
if __name__ == '__main__':
    demo1(a,b)
    demo2(a,b)
    demo3(a,b)

结果如下

输入a值: 123
输入b值: 456
456 123
456 123
456 123

#update——增加交互提示
a = int(input('输入a值: '))
b = int(input('输入b值: '))
print('初始 a的值为: {}'.format(a), ',b的值为: {}'.format(b))
def demo1(a,b):
    temp = a
    a = b
    b = temp
    print('交换后 a的值为: {}'.format(a), ',b的值为: {}'.format(b))
def demo2(a,b):
    a,b = b,a
    print('交换后 a的值为: {}'.format(a), ',b的值为: {}'.format(b))
def demo3(a, b):
    a = a + b
    b = a - b
    a = a - b
    print('交换后 a的值为: {}'.format(a), ',b的值为: {}'.format(b))
if __name__ == '__main__':
    demo1(a,b)
    demo2(a,b)
    demo3(a,b)

结果如下:

输入a值: 789
输入b值: 426
初始 a的值为: 789 ,b的值为: 426
交换后 a的值为: 426 ,b的值为: 789
交换后 a的值为: 426 ,b的值为: 789
交换后 a的值为: 426 ,b的值为: 789

#update——更新demo3为字符串切片法,之前的数据计算法,受限于输入的数据类型,无法处理字符串类型
a = input('输入a值: ')
b = input('输入b值: ')
print('初始 a的值为: {}'.format(a), ',b的值为: {}'.format(b))
def demo1(a,b):#创建临时是变量
    temp = a
    a = b
    b = temp
    print('临时变量法: a的值为: {}'.format(a), ',b的值为: {}'.format(b))
def demo2(a,b):#交换法
    a,b = b,a
    print('交换位置法: a的值为: {}'.format(a), ',b的值为: {}'.format(b))
def demo3(a, b):#
     a =a+b
     b =a.split(b)
     a =a.split(b[0])
     print('字符串切片法: a的值为: {}'.format(a[1]), ',b的值为: {}'.format(b[0]))
if __name__ == '__main__':
    demo1(a,b)
    demo2(a,b)
    demo3(a,b)

结果如下:

输入a值: abc
输入b值: xyz
初始 a的值为: abc ,b的值为: xyz
临时变量法: a的值为: xyz ,b的值为: abc
交换位置法: a的值为: xyz ,b的值为: abc
字符串切片法: a的值为: xyz ,b的值为: abc

作业2

完成字符串的逆序以及统计

  • 设计一个程序,要求只能输入长度低于31的字符串,否则提示用户重新输入
  • 打印出字符串长度
  • 使用切片逆序打印出字符串

测试字符串:

0123456789012345678901234567890123456789
0123456789

def demo():
    content=input('请输入字符串:')
    if len(content)>30:
       print('您输入的字符串长度大于30,请重新输入')
       demo()
    else:
       print('您输入的字符是:'+content)
       print('字符串长度是:'+str(len(content)))
       print('切片逆序打印为:'+str(content[::-1]))
demo()

结果如下

请输入字符串:0123456789012345678901234567890123456789
您输入的字符串长度大于30,请重新输入
请输入字符串:0123456789
您输入的字符是:0123456789
字符串长度是:10
切片逆序打印为:9876543210

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MIANHUA_007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值