python基础
1、PyCharm
2、基础语法
字面量
字面量:被写在代码里的固定的值。
注释
注释的分类
单行: # 注释内容,快捷键ctrl+/
多行:“”" 注释内容 “”" 或 ‘’’ 注释内容 ‘’’
变量
# 定义一个变量,用来记录钱包余额
money = 50
# 通过print语句,输出变量记录的内容
print("钱包还有:", money)
# 买了一个冰淇淋,花费10元
money = money - 20
print("买了冰淇淋花费10元,还剩余:", money, "元")
数据类型
使用**type(被查看类型的数据)**查看数据类型
# 方式1: 使用print直接输出类型信息
print(type("黑马程序员"))
print(type(666))
print(type(11.345))
# 方式2: 使用变量存储type()语句的结果
string_type = type("黑马程序员")
int_type = type(666)
float_type = type(11.345)
print(string_type)
print(int_type)
print(float_type)
# 方式3: 使用type()语句,查看变量中存储的数据类型信息
name = "黑马程序员"
name_type = type(name)
print(name_type)
输入&输出
name = input("Enter your name: ")
print(f"Hello {name}!",end="\n")
"""
Enter your name: haha
Hello haha!
"""
无论键盘输入什么类型的数据,获取到的数据永远都是字符串类型
print(), 默认自带end="\n"这个换行结束符,所以导致每两个print直接会换行展示,用户可以按需求更改结束符。
数据类型转换
3. 浮点数转整数会丢失精度,也就是小数部分
标识符
标识符命名规则是Python中定义各种名字的时候的统一规范,具体如下:
- 由数字、字母、中文、下划线组成(不推荐中文)
- 不能数字开头
- 不能使用内置关键字
- 严格区分大小写
命名习惯
- 见名知义。
- 大驼峰:即每个单词首字母都大写,例如:MyName。
- 小驼峰:第二个(含)以后的单词首字母大写,例如:myName。
- 下划线:例如:my_name。
运算符
运算符 | 描述 | 实例 |
---|---|---|
== | 判断相等。如果两个操作数的结果相等,则条件结果为真(True),否则条件结果为假(False) | 如a=3,b=3,则(a == b) 为 True |
!= | 不等于 。如果两个操作数的结果不相等,则条件为真(True),否则条件结果为假(False) | 如a=3,b=3,则(a == b) 为 True如a=1,b=3,则(a != b) 为 True |
> | 运算符左侧操作数结果是否大于右侧操作数结果,如果大于,则条件为真,否则为假 | 如a=7,b=3,则(a > b) 为 True |
< | 运算符左侧操作数结果是否小于右侧操作数结果,如果小于,则条件为真,否则为假 | 如a=7,b=3,则(a < b) 为 False |
>= | 运算符左侧操作数结果是否大于等于右侧操作数结果,如果大于,则条件为真,否则为假 | 如a=7,b=3,则(a < b) 为 False,如a=3,b=3,则(a >= b) 为 True |
<= | 运算符左侧操作数结果是否小于等于右侧操作数结果,如果小于,则条件为真,否则为假 | 如a=3,b=3,则(a <= b) 为 True |
运算符 | 逻辑表达式 | 描述 | 实例 |
---|---|---|---|
and | x and y | 布尔"与":如果 x 为 False,x and y 返回 False,否则它返回 y 的值。 | True and False, 返回 False。 |
or | x or y | 布尔"或":如果 x 是 True,它返回 True,否则它返回 y 的值。 | False or True, 返回 True。 |
not | not x | 布尔"非":如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 | not True 返回 False, not False 返回 True |
字符串拓展
1 定义方法
三引号定义法,和多行注释的写法一样,同样支持换行操作。
使用变量接收它,它就是字符串
不使用变量接收它,就可以作为多行注释使用。
引号嵌套
单引号定义法,可以内含双引号
双引号定义法,可以内含单引号
可以使用转移字符(\)来将引号解除效用,变成普通字符串
#在字符串内包含双引号
name = '"黑马程序员"'
#在字符串内包含单引号
name="'黑马程序员'"
#使用转义字符解除引号的效用
name"\"黑马程序员\""
name'\'黑马程序员\''
2 字符串拼接
# 字符串字面量之间的拼接
print("学IT来黑马" + "月薪过万")
# 字符串字面量和字符串变量的拼接
name = "黑马程序员"
address = "建材城东路9号院"
tel = 4006189090
# 无法与非字符串类型进行拼接
print("我是:" + name + ",我的地址是:" + address + ",我的电话是:" + tel)
无法与非字符串类型进行拼接
变量过多时拼接麻烦
3 字符串格式化
占位
格式符号 | 转换 |
---|---|
%s | 字符串 |
%d | 有符号的十进制整数 |
%f | 浮点数 |
%c | 字符 |
%u | 无符号十进制整数 |
%o | 八进制整数 |
%x | 十六进制整数(小写ox) |
%X | 十六进制整数(大写OX) |
%e | 科学计数法(小写’e’) |
%E | 科学计数法(大写’E’) |
%g | %f和%e的简写 |
%G | %f和%E的简写 |
转义字符
- \n:换行
- \t:制表符,一个tab键(4个空格)的距离。
精度控制
我们可以使用辅助符号"m.n"来控制数据的宽度和精度
- m,控制宽度,要求是数字(很少使用),设置的宽度小于数字自身,不生效.
- n,控制小数点精度,要求是数字,会会进行小数的四舍五入
快速写法
通过语法 ** f"内容{变量}" **的格式来快速格式化
这种方法不做精度控制,不理会数据类型,适合于快速格式化字符串
3、条件语句
布尔类型,字面量True表示真,字面量False表示假
通过<比较运算符>计算得到布尔类型的结果
- ==判断是否相等,
- !=判断是否不相等
- >判断是否大于,
- <判断是否小于
- >=判断是否大于等于,
- <=判断是否小于等于
if-else语句
# 定义键盘输入获取身高数据
height = int(input("请输入你的身高(cm):"))
# 通过if进行判断
if height > 120:
print("您的身高超出120CM,需要买票,10元。")
else:
print("您的身高低于120CM,可以免费游玩。")
print("祝您游玩愉快")
1.if后跟条件,else后不加条件,最后都加冒号,
2.条件判断的结果必须是True或False
3.归属于if或else判断的代码语句块,需在前方填充4个空格缩进
if-elif-else语句
# 通过if判断,可以使用多条件判断的语法
# 第一个条件就是if
if int(input("请输入你的身高(cm):")) < 120:
print("身高小于120cm,可以免费。")
elif int(input("请输入你的VIP等级(1-5):")) > 3:
print("vip级别大于3,可以免费。")
elif int(input("请告诉我今天几号:")) == 1:
print("今天是1号免费日,可以免费")
else:
print("不好意思,条件都不满足,需要买票10元。")
input()语句可以直接写如判断条件中
判断语句嵌套
age = 11
year = 1
level = 1
if age >= 18:
print("你是成年人")
if age < 30:
print("你的年龄达标了")
if year > 2:
print("恭喜你,年龄和入职时间都达标,可以领取礼物")
elif level > 3:
print("恭喜你,年龄和级别达标,可以领取礼物")
else:
print("不好意思,尽管年龄达标,但是入职时间和级别都不达标。")
else:
print("不好意思,年龄太大了")
else:
print("不好意思,小朋友不可以领取。")
嵌套判断语句,一定要注意空格缩进,Python通过空格缩进来决定层次关系
三目运算符
值1 if 条件 else 值2
a = 1
b = 2
c = a if a > b else b
print(c)
4、循环语句
1. while循环
while 条件:
条件成立重复执行的代码1
条件成立重复执行的代码2
......
while 条件1:
条件1成立执行的代码
......
while 条件2:
条件2成立执行的代码
......
i = 1
result = 0
while i <= 100:
result += i
i += 1
# 输出5050
print(result)
"""
演示使用while的嵌套循环
打印输出九九乘法表
"""
# 定义外层循环的控制变量
i = 1
while i <= 9:
# 定义内层循环的控制变量
j = 1
while j <= i:
# 内层循环的print语句,不要换行,通过\t制表符进行对齐
print(f"{j} * {i} = {j * i}\t", end='')
j += 1
i += 1
print() # print空内容,就是输出一个换行
"""
演示while循环的基础案例 - 猜数字
"""
# 获取范围在1-100的随机数字
import random
num = random.randint(1, 100)
# 定义一个变量,记录总共猜测了多少次
count = 0
# 通过一个布尔类型的变量,做循环是否继续的标记
flag = True
while flag:
guess_num = int(input("请输入你猜测的数字:"))
count += 1
if guess_num == num:
print("猜中了")
# 设置为False就是终止循环的条件
flag = False
else:
if guess_num > num:
print("你猜的大了")
else:
print("你猜的小了")
print(f"你总共猜测了{count}次")
2. for循环
for 临时变量 in 序列:
重复执行的代码1
重复执行的代码2
......
for循环是将字符串的内容依次取出,所以,for循环也被称之为遍历循环
同while循环不同,for循环是无法定义循环条件的。
只能从被处理的数据集中,依次取出内容进行处理。
所以,理论上讲,Python的for循环无法构建无限循环(被处理的数据集不可能无限大)
循环内的语句,需要有空格缩进
# 统计如下字符串中,有多少个字母a
name = "itheima is a brand of itcast"
# 定义一个变量,用来统计有多少个a
count = 0
# for 循环统计
# for 临时变量 in 被统计的数据:
for x in name:
if x == "a":
count += 1
print(f"被统计的字符串中有{count}个a")
range语句
range语句,获得一个简单的数字序列
for 临时变量in待处理数据集(可迭代对象):
循环满足条件时执行的代码
range语句,获得一个简单的数字序列
3. 循环中断
continue关键字用于中断本次循环,直接进入下一次循环
for循环和while循环,效果一致
只对所在的循环有效
break关键字用于直接结束所在循环
可以用于for循环和while循环,效果一致
只对所在的循环有效
4. else特殊用法
while 条件:
条件成立重复执行的代码
else:
循环正常结束之后要执行的代码
for 临时变量 in 序列:
重复执行的代码
...
else:
循环正常结束之后要执行的代码
while和for都可以配合else使用
else下方缩进的代码含义:当循环正常结束后执行的代码
break终止循环不会执行else下方缩进的代码
continue退出循环的方式执行else下方缩进的代码