数据类型数据
一、数值类型
整数(int):整数
浮点数(float):小数
布尔值(bool):只有两个值True和False
二、python常见运算运算符
- 算术运算符:+ - * / %
- 赋值运算符:= += -=
- 比较运算符:== > < >= <= != 条件成立返回True,条件不成立返回False
- 逻辑运算符:or-假假为假 and-真真为真 not-非
三、随机数模块:random
- 随机生成0~1之间的浮点数 random.random()
- 随机生成a~b之间的浮点数 random.uniform(a,b)
- 随机生成1~10之间的整数 random.randint(1,10)
四、字符串
1、字符串的定义
- 单引号、双引号:定义单行字符串
- 三引号、三双引号:多行字符串定义
- 空字符串:s = ''
- 空白字符:s = ' '
- 内置函数:str()
- 注意点:字符串中有单引号时(外面用双引号注意区分)
2、字符串的切片和下标取值
- 下标索引取值
下标取值:可以正向取,也可以反向取
注意点:正向从0开始,反向从-1开始
- 切片
切片的语法:和下标取值一样使用中括号进行切片,有两种用法:
[a:b]:a代表起始位置下标,b代表终止位置下标(左闭右开)
[a:b:c]:a代表起始位置下标,b代表终止位置下标(左闭右开),c代表步长
注:a,b,c均可省略
典型面试题:字符串反转
string[::-1]
超出范围:
索引超出范围:test_str[100],报错“string index out of range”
切片超出范围:test_str[0:100],不会报错,到没有为止
3、字符串拼接和转义
+号:“hello”+“python”
字符串转义:
\n:换行符
\t:水平制表符……
关闭转义:r'hello \n python'
成员运算符:in、not in
4、字符串常用方法
方法 | 描述 |
join | 字符串拼接 |
find | 查找元素的位置 |
count | 查找元素的个数 |
replace | 替换字符 |
split | 字符串分割 |
format | 格式化输出 |
upper | 将字母大写 |
lower | 将字母转成小写 |
- split
date = "23/8/2022" new_date = date.split('/') print(new_date)
-
join
lst = ['23','8','2022'] str = '/'.join(lst) print(str)
5、格式化输出
1)Format格式化输出
- format()功能更强大,该函数把字符串当成一个模板,通过传入的参数进行格式化,并且使用大括号{}作为特殊字符代替'%'
数据 | 格式 | 结果 | 描述 |
5.11111 | {:.2f} | 5.11 | 保留小数点后两位 |
2.11 | {:.0f} | 2 | 不带小数 |
5 | {:x>4d} | xxx5 | 数字补零(填充左边,宽度为4) |
5 | {:x<4d} | 5xxx | 数字补零(填充右边,宽度为4) |
0.25 | {:.2%} | 25.00% | 百分比格式 |
aa | {:>10d} | aa | 右对齐(默认,宽度为10) |
aa | {:<10d} | aa | 左对齐(宽度为10) |
aa | {:^10d} | aa | 中间对齐(宽度为10) |
2)传统的格式化输出%
符号 | 描述 |
%s | 格式化字符串 |
%d | 格式化整数 |
%f | 格式化浮点数字,可指定小数点后的精度 |
3)练习题:通过格式化输出,将下面数据输出成下面结果
name = '小明'
age = 18
money = 99.99
这位同学叫:小明,今年:18岁,银行卡余额:99.99
name = '小明'
age = 18
money = 99.99
# 方法一
print('这位同学叫:{},今年:{}岁,银行卡余额:{}'.format(name,age,money))
# 方法二 python3.6后常用
print(f'这位同学叫:{name},今年:{age}岁,银行卡余额:{money}')
五、小练习
1、用户输入一个数值,请判断用户输入的是否为偶数?是偶数输出True,不是输出False(提示:input输入的不管是什么,都会被转换成字符串)
# 输入数字
num = input('请输入数字:')
# 转换成int 或者float也可以
num = int(num)
# 条件运算符做比较,打印结果
print('num%2==0')
2、卖橘子的计算器:写一段代码,提示用户输入橘子的价格,然后随机生成购买的斤数(5到10斤之间),最后计算出应该支付的金额!
import random
# 输入价格
price = input('输入价格:')
# 转换成浮点数
price = float(price)
# 生成斤数
num = random.randint(5,10)
print('购买斤数:',num)
# 计算价格
res = price * num
print('支付金额:',res)
3、现在有列表li = ['hello','python','!'],通过相关操作转换成字符串'hello python !'
li = ['hello','python','!']
# 创建空白字符串
str1 = ' '
# 使用join方法
res = str1.join(li)
print(res)
4、现在有字符串:str1='python hello aaa 123123aabb'
1)请计算字符串中有多少个'a'
2)请找出字符串中'123'的下标起始位置
3)请分别判断'o a' 'he' 'ab'是否是该字符串中的成员
str1='python hello aaa 123123aabb'
# 1)计算字符串中有多少个'a'
count_a = str1.count('a')
print('a的个数:',count_a)
# 2)找出字符串中'123'的下标起始位置
start_index = str1.find('123')
print(start_index)
# 3)分别判断'o a' 'he' 'ab'是否是该字符串中的成员
res_1 = 'o a' in str1
print('o a的结果',res_1 )
res_2 = 'he' in str1
print('he的结果',res_2)
res_3 = 'ab' in str1
print('ab的结果',res_3)
5、下面的变量s是字符串形式的电话
s = '010-888-888-888'
请编写代码使用字符串方法去掉s中的'-'
# split+join
s = '010-888-888-888'
s1 = s.split('-')
s2 = ''.join(s1)
print(s2)
# replace
s = '010-888-888-888'
s3 = s.replace('-','')
print(s3)