前言:本文为小编自主学习python的过程中的笔记和对应的练习应用 ,希望能帮助到大家,也希望大家能一起交流学习。
目录
一、输出与输入
print函数
用于将对象输出,当输出对象为字符串时需要加上英文引号(单双引号都可以,但一般用双引号,防止与字符串内的符号产生歧义。如don't);而当输出对象为数字时不用加,否则会以字符串形式输出。
输出语句参数
1. sep可设置隔开多个参数的方式( 默认是以空格隔开)
2. end可设置结尾方式(默认是以换行结尾)
例如:
print(123,456,789)
print(123,456,789,sep="*")
print("hello",end="*")
print("world")
input函数
可以实现用户输入并返回值,且返回值为字符串类型。
二、变量
1.数据类型
str(字符串)int(整数型) float(浮点型) bool(布尔型) complex(复数) 等
2.查看数据类型
type() 用来查看数据类型
3.数据类型的转换
str() 将数据转换为字符串类型
int() 讲数据转换为整数型
eval() 可将input读入的输入转为适当对象
4.标识符
- 由数字、字母和下划线——组成(汉字也可以,但不推荐)
- 不能数字开头
- 不能和关键字重名
- 区分大小写
查看关键字的方法:
import keyword
print(kerword.kwlist)
5.len()函数 用于查看对象长度或个数
三、格式化输出
1.%s、%d、%f
准备数据
格式化符号输出工具 %s -字符串 %d -十进制整数 %f -浮点数
age = 18
name = "yz"
weight = 50.25
# 1.今年我的年龄是x岁 # 整数
print("今年我的年龄是%d岁" %age)
# 占位%age - %d特定的格式 age变量 ""字符串
# %03d表示长度为3,不足时用0填充
# 2.我的名字是x
print("我的名字是%s" %name)
# 3.我的体重是x公斤
print("我的体重是%f公斤" %weight)
# 默认是保留6位小数
print("我的体重是%.2f公斤" %weight)
# 保留2位小数
# 4.我的名字是x,今年x岁了
print("我的名字是%s,今年%d岁了" %(name,age))
# 如果有多个参数%()里面的参数用逗号隔开
2.format函数
有两种表达形式
" { } ".format() 其中{}为占位符
f" { } "
# 第一种表达
name = "yz"
score = 100
# 不带编号的
print("我的名字是{},我的分数{}分".format(name,score))
# 带数字编号的
print("我的名字是{1},我的分数{0}分".format(score,name))
# score = 0 name = 1
# 带关键字的
print("我的名字是{name},我的分数{s}分".format(name=name,s=score))
avgScore = 80
order = 66
print("班级的平均分为{:.1f}分".format(avgScore))
# 小数点 保留一位小数
print("考试的序号是{:0>3d}".format(order))
# 066 数字补零,填充左边,宽度为3
print("考试的序号是{:0<3d}".format(order))
# 660 数字补零,填充右边,宽度为3
# 不写>或<则默认填充左边
print("考试的序号是{:*>3d}".format(order)) # *66
print("aa{:^10}bb".format(order))
# 中间对齐,宽度为10 ^:shift+6
# 第二种表达
print(f"我的名字是{name},我的分数是{score}")
print(f"班级的平均分是{avgScore:.1f}")
四、运算符
算术运算符
算术运算符包括:加+
、减-
、乘*
、除/
、取模—返回除法的余数%
、幂—返回x
的y
次幂**
、取整数—返回商的整数部分//
例如,计算a
与b
的和:
a = 10
b = 20
print(a + b)
# 输出结果为 30
计算b
除以a
的余数:
a = 10
b = 20
print(b % a)
# 输出结果为:0
比较(关系)运算符
比较(关系)运算符包括:等于==
、不等于!=(
或者<>)
、大于>
、小于<
、大于等于>=
、小于等于<=
。例如,判断a
与b
是否相等:
a = 10
b = 20
a == b
# 返回:false
判断a
与b
是否不相等:
a = 10
b = 20
a <> b
# 返回:true
赋值运算符
赋值运算符包括:
=
:简单的赋值运算符;+=
:加法赋值运算符;-=
:减法赋值运算符;*=
:乘法赋值运算符;/=
:除法赋值运算符;%=
:取模赋值运算符;**=
:幂赋值运算符;//=
:取整除赋值运算符。
例如,将c
乘以a
的值赋值给c
:
c *= a
# 等价于:
c = (c * a)
位运算符
程序中所有的数都是以二进制形式存储在计算机中的。例如,a = 13
转化成二进制就是a = 1101
,每一个数称为一位。位运算就是对二进制按位进行运算。
Python 中的位运算符包括如下六种:
&
:按位与;|
:按位或;^
:按位异或;~
:按位取反;<<
:左移动;>>
:右移动。
&
按位与
将两个二进制数按位进行逻辑与,对应位都为1
时则结果为1
,否则为0
,最后得出结果。例如,a = 10
,二进制数为a = 1010
,b = 8
,二进制数为b = 1000
,按位与的结果为a & b = 1000
,换成十进制结果为8
。
|
按位或
将两个二进制数按位进行逻辑或,对应位中有一个为1
则结果为1
,两个都为0
则结果为0
,最后得出结果。例如,a = 12
,二进制数为a = 1100
,b = 8
,二进制数为b = 1000
,则其按位或的结果为a | b = 1100
,换成十进制结果为12
。
^
按位异或
将两个二进制数按位进行逻辑异或,对应位不同结果为1
,相同为0
,最后得出结果。例如,a = 12
,二进制数为a = 1100
,b = 8
,二进制数为b = 1000
,则其按位异或的结果为a ^ b = 0100
,换成十进制结果为4
。
~
按位取反
将一个二进制数按位进行取反,当前位为1
,则取反为0
,当前位为0
,则取反为1
,最后得出结果。例如,a = 18
,二进制数为a = 10010
,则其按位取反的结果为~a = 01101
,换成十进制结果为13
。
<<
左移动
将一个二进制数进行左移,就是按二进制形式把所有的数字全部向左移动对应的位数,移动时高位舍弃,低位补零。例如,a = 3
,二进制数为a = 0011
,则其向左移动两位的结果为a << 2 = 1100
,换成十进制结果为12
。
>>
右移动
将一个二进制数进行右移,就是按二进制形式把所有的数字全部向右移动对应的位数,移动时低位舍弃,高位补符号位。例如,a = 4
,二进制数为a = 0100
,则其向右移动两位的结果为a >> 2 = 0001
,换成十进制结果为1
。
逻辑运算符
-
and
逻辑与
都真才真
逻辑表达式为x and y
。当 x
为 False
时,x and y
返回 False
,否则它返回y
的计算值。
or
逻辑或
一真则真
逻辑表达式为x or y
。当x
为true
、y
为false
时,得到的结果为true
。只有当x
与y
都为false
时,得到的结果才为false
。如果 x
是非 0
,它返回 x
的值,否则它返回y
的计算值。
not
逻辑非
相反
逻辑表达式为not x
。当x
为true
时,得到的结果为false
,当x
为false
时,得到的结果为true
。
- 优先级:not > and > or
成员运算符
in
x in y 若x
在y
序列中,则返回true
,若不在则返回false
。例如:
a = 10
list = [1, 2, 3, 4, 5 ]
a in list
# 结果为:false
not in
x not in y 如果x
不在y
序列中,则返回True
,否则返回false
。例如:
a = 10
list = [1, 2, 3, 4, 5 ]
a not in list
# 结果为:True
身份运算符
is
运算符is
表示判断两个标识符的存储单元是否相同。若相同,则返回true
,否则返回false
。例如:
a = 10
b = 10
a is b
# 结果为:true
is not
运算符is not
表示判断两个标识符的存储单元是否不相同。若不相同,则返回true
,否则返回false
。例如:
a = 10
b = 10
a is not b
# 结果为:False
注:==用于检查两个对象是否相等,而is用来检查两个对象是否相同(是同一对象)。
运算符优先级
要实现上述功能,需要掌握运算符的优先级。下表列出了优先级由高到低的所有运算符:
类别 | 类型名 |
---|---|
** | 指数(最高优先级) |
~ + - | 按位翻转,一元加号和减号(最后两个的方法名为 +@ 和 -@) |
* / % // | 乘,除,取模和取整除 |
+ - | 加法,减法 |
>> << | 右移,左移运算符 |
& | 位 (AND ) |
^ | 位运算符 |
<= < > >= | 比较运算符 |
<> == != | 等于运算符 |
= % = /= //= -= += *= **= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not or and | 逻辑运算符 |
五、判断
基本语法:
if 判断条件:
条件成立所执行的代码
else:
条件不成立所执行的代码
三元表达式:
成立执行的代码 if 条件 else 不成立执行的代码
多重判断:
if 条件1:
成立1所执行的代码
elif 条件2:
成立2所执行的代码
elif 条件3:
成立3所执行的代码
else :
以上条件都不成立所执行的代码
六、循环
1.while循环
while 条件:
条件满足时所执行的代码
while循环实现猜数字游戏:
import random
a, i = random.randint(1, 50), 6
print("猜数字", f"你一共有{i}次机会")
while i > 0:
c = int(input("请输入一个1-50的整数:"))
i -= 1
if a > c and i > 0:
print("猜小了", f"你还有{i}次机会")
elif a < c and i > 0:
print("猜大了", f"你还有{i}次机会")
elif a == c:
print("恭喜你猜对了!游戏结束!")
break
else:
print("很遗憾你已经没机会了,游戏结束!")
while 实现九九乘法表:
j = 1
while j<=9:
i = 1
while i<=j:
print(f"{i}*{j}={i*j:<2d}",end=" ")
i+=1
print()
j+=1
2.for循环
for 临时变量 in 序列:
代码块
函数range
range(开始位置,结束位置,步长) (左闭右开原则)通常与for联用
注:该函数返回的是整数序列
例:
x = 4
for i in range(0,x):
print(i)
for实现简单用户登录:
"""
1. 在循环里面 用户名 密码
2. 判断 正确 进入系统 break 错误继续输入
3、只有三次输入机会
"""
for i in range(3):
name = input("请输入用户名:")
pwd = int(input("请输入密码:"))
if name == "yz":
print("用户名输入正确")
if pwd == 123:
print("密码输入正确")
break
else:
print("密码错误")
else:
print("用户名错误")
else:
print("你已经没有机会了")
3.break和continue
break 退出循环,不再执行后续代码
continue 跳过,后续代码还会执行
注:break和continue只能在循环中写,且都针对于当前循环。
七.编码解码
encode :将其他编码的字符串转换成Unicode编码
decode :将Unicode编码转换成其他编码的字符串
如有哪些地方写错,欢迎纠正