目录
01、变量与常量
【python变量命名规则】
- 字母或下划线开头
(下划线开头的变量有特殊含义,不能以数字开头)
- 不能有空格或标点符号
- 不能与关键字同名
- 尽量不要与内置名称相同
- 大小写敏感
- 取有意义的名称
x = 20 # 整数类型变量
y = 40
s = "I love Python!"# 字符串类型变量
t = 20.5 # 浮点类型变量
flag = True # 布尔类型变量
print(x+y) # 60
print(s) # I love Python!
print(t) # 20.5
print(flag) # True
【数字】
- 不可变对象
- 类型:整数、浮点数、复数
- 整数可以任意大
print(126 - 654) # -528
print(20 + 4 *5) # 40
print(4/2) # 2.0(除法)
print(4//2) # 2(整除)
print(3//2) # 1
print(3/2) # 1.5
print(3%2) # 1(取余)
print(2**10) # 1024(指数)
print(2**128) # 340282366920938463463374607431768211456(整数可以无限大)
【进制转换】
- 十进制:0-9;十六进制:0-9、A-F
- 除十进制外,其他进制数字最前面都是0
- 二进制: 0b 八进制: 0o 十六进制:0x
- 其他进制转二进制:bin(其他进制数)
- 其他进制转八进制:oct(其他进制数)
- 其他机制转十六进制:hex(其他进制数)
- 其他进制转十进制:
1、使用int函数,该函数有两个参数:
参数1:字符串类型,表示待转换的数
参数2:数值类型 (2,8,16)
2、直接输出即可
# 其他进制转十进制
print(int("0b11010101",2)) # 213
print(int("0o43124",8)) # 18004
print(int("0xFF12E",16)) # 1044782
print(0b11010101) # 213
print(0o43124) # 18004
print(0xFF12E) # 1044782
print(bin(432)) # 求二进制 0b110110000
print(oct(432)) # 求八进制 0o660
print(hex(0o43124)) # 求十六进制 0x4654
【输出格式】
x = 1234.56789
print(format(x,'0.2f')) # 保留小数点后两位
# 箭头指向哪就向哪对齐
print(format(x,'>12.1f')) # 保留小数点后1位,在12个字符长度的区域内右对齐,左侧空格
print(format(x,'<12.1f'),12)# 保留小数点后2位,在12个字符长度的区域内左对齐,后面紧跟12
print(format(x,'0>12.1f')) # 保留小数点后1位,在12个字符长度的区域内右对齐,左侧补0
print(format(x,"0<12.1f")) # 保留小数点后2位,在12个字符长度的区域内左对齐,右补0
print(format(x,"0^12.1f")) # 保留小数点后1位,在12个字符长度的区域内中心对齐,前后补0
print(format(x,",.1f")) # 加上千分位逗号
print(format(x,'e')) # 科学计数法
print(format(x,'0.2E')) # 科学计数法:保留两位小数
# 1234.57
# 1234.6
# 1234.6 12
# 0000001234.6
# 1234.6000000
# 0001234.6000
# 1,234.6
# 1.234568e+03
# 1.23E+03
【字符串】
- 字符串属于不可变序列,一般使用单引号、双引号或三引号进行界定,可以互相嵌套,用来表示复杂字符串
- 一对三单引号或三双引号表示的字符串支持换行,支持排版格式较为复杂的字符串,也可以在程序中表示较长的注释
转义字符
| \ | (在行尾时)续行符 |
| \\ | 反斜杠符号 |
| \' | 单引号 |
| \" | 双引号 |
| \a | 响铃(在cmd中有响声,在IDLE中显示方块) |
| \b | 退格(Backspace) |
| \e | 转义 |
| \000 | 空 |
| \n | 换行 |
| \v | 纵向制表符 |
| \t | 横向制表符 |
| \r | 回车 |
| \f | 换页 |
| \oyy | 八进制数,y代表 0~7 的字符,例如:\012 代表换行。 |
| \xyy | 十六进制数,以x开头,yy代表的字符,例如: \x0a代表换行 |
| \other | 十六进制数,以x开头,yy代表的字符,例如: \x0a代表换行 |
【补充】:字符比较大小其实是在比较两个字符的ASCII码
- 求一个字符的 ASCII码:ord('字符')
- 求该ASCII码下的字符:chr(ASCII码)
# ord('字符')求ASCII码
print(ord("a")) # 97
print(ord("A")) # 65
print(ord("1")) # 49
print('a'>'A') # True
print('1'>'A') # False
# chr(ASCII码)求字符
print(chr(65)) # A
print(chr(49)) # 1
02、运算符与表达式
# 1.23E+03
#%%
print(1+2-3*4/6) # 有除法,输出实数 1.0
print(6%4+6//4+6/4+2**4) # 20.5
print((2+3j)*(4+5j)) # (-7+22j)
print("ab"*3) # ababab
print([1,2,3]*3) # [1, 2, 3, 1, 2, 3, 1, 2, 3]
print((1,2,3)*3) # (1, 2, 3, 1, 2, 3, 1, 2, 3)
print([1,2,3]+[3,4,5]) # [1, 2, 3, 3, 4, 5]
print("Hello"+" "+"world") # Hello world
a = 5
b = 2
print(a==b) # False
print(a!=b) # True
print(a>b) # True
print(a<b) # False
print(a>=b) # True
print(a<=b) # False
【位运算符】
a = 0b00111100
b = 0b00001101
print(bin(a&b)) # 0b1100 &:和 都是1才输出1
print(bin(a|b)) # 0b111101 |:或 有1就输出1
print(a^b) # 49 ^:异或 # 不同的输出1
print(bin(~a)) # -0b111101 ~:按位取反
print(bin(a<<2))# 0b11110000 <<:左移两位
print(bin(a>>2))# 0b1111 >>:右移两位
”在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。
- 原码:最高位表示符号位,0表示正数,1表示负数,不会改变。其余位表示为整数的二进制数。
- 反码:正数的反码与原码相同,负数的反码反码是在原码的基础上对除符号位之外的位取反,0变1,1变0。
- 补码:正数的补码与原码相同,负数的补码是在反码的基础上,对最低位+1。
| 语句 | 原码 | 反码 | 补码 |
| 33 | 0010 0001 | 0010 0001 | 0010 0001 |
| -33 | 1010 0001 | 1101 1110 | 1101 1111 |
按位取反:
| 语句 | 数值 | 原码 | 补码 | 求反 | 输出 |
| print(~5) | 5 | 0000 0101 | 0000 0101 | 1111 1010 | -6 |
| print(~-6) | -6 | 1000 0110 | 1111 1010 | 0000 0101 | 5 |
【逻辑运算符】
a=3
b=-1
# 两个都不为0,打印第二个变量的值;有一个为0则打印0
print(a and b) # -1 a=3表示成立,直接打印b
# 若a=0,b=-1,则打印0,因为a=0不成立,and有一个不成立则不成立(0)
# 有一个不为0则打印不为0的数,两个都不为0则打印第一个,两个为0打印0
print(a or b) # 1
# a!=0打印True,a=0打印Flase
print(not a) # False
【成员运算符】
a = 3
b = 20
lst = [1,2,3,4,5]
if a in lst: print("yeah") # yeah
if b not in lst: print("yes") # yes
# 判断依据语句可以简写成下面的形式
print("yeah" if a in lst else "no") # yeah
print("yeah" if b in lst else "no") # no
【身份运算符】
a = 3
b = 20
c = 3
if a is not b: print("yeah") # yeah
if a is c: print("yes") # yes
# 判断依据语句可以简写成下面的形式
print("yeah" if a is b else "no") # yeah
print("yeah" if a is not c else "no") # no
03、常见内置函数
print(pow(2,3)) # 8 等价于2**3
print(abs(-33)) # 33
print(round(3.7)) # 4
print(round(3.3)) # 3
from cmath import sin
print(sin(3.14)) # (0.0015926529164868282-0j)
print(float("3.5")) # 3.5
print(ord("a")) # 97(ASCII)
print(chr(65)) # A
print(max(2,3,6,4)) # 6
print(sum([1,2,3,4])) # 10
print(len("love you")) # 8
print(bin(5)) # 0b101
print(oct(55)) # 0o67
print(hex(555)) # 0x22b
【基本输入输出】
input( ):接收用户的键盘输入,返回结果为字符串
print( ):输入数据到IDLE或者标准控制台,也可以重定向到指定文件等
x = input("Please input:") # Please input:la
print(type(x))
name = input("请输入你的名字:") # 请输入你的名字:abb
age = int(input("请输入你的年龄:")) # 请输入你的年龄:abb
salary = float(input("请输入你的收入:")) # 请输入你的收入:20000
print("姓名:",name) # 名字:abb
print("年龄:",age) # 年龄:33
print("收入:",format(salary,"0.1f")) # 收入:20000.0
【模块的导入与使用】
import <模块名> [as <别名>]
from <模块名> import <对象名> [as <别名>]
import math
import random as rd
from math import sqrt
# from math import * # 导入math中的所有函数
print(math.sin(0.5)) # 求0.5的正弦值 0.479425538604203
x=rd.random() # [0,1]内的随机小数 0.21294021285262943
print(x)
y=rd.randint(1,100) # [1,100]区间内的随机整数 45
print(y)
print(sqrt(3)) # 求3的平方根
【Python代码编写规范】
- ”缩进即语法
- 每个import语句只导入一个模块
- ”如果一行语句太长,行尾使用续行符“\”,来表示下面紧接的一行仍属于当前语句
- 使用必要的空格与空行增加代码的可读性
- ”适当使用异常处理结构提高程序容错性和健壮性
- 软件应具有较强的可测试性,测试与开发齐头并进
04、选择与循环
【条件表达式】
- 在Python中,单个常量、变量或者任意合法表达式都可以作为条件表达式。
- 条件表达式的值为False、0(包括0.0、0j等)空值None、空列表、空元组、空集合、空字典空字符串、空range对象或其他空迭代对象,则表示条件不成立,否则表示条件成立。
x<y<z 等价于 x<y and y<z
【选择结构】
选择结构:通过判断某些特定条件是否满足来决定下一步的执行流程
-
单分支选择结构
# 【形式】
# if 表达式:
# 语句块
# 【例题】
# 输入两个数,从小到大输出
a,b = map(int,input("Input two numbers:").split()) # 7 5
if a>b:
a,b = b,a
print(a,b) # 5 7
-
双分支选择结构
# 【形式】
# if 表达式:
# 语句块1
# else:
# 语句块2
# 【例题】
# 鸡兔同笼问题:已知鸡兔总数量和腿的总数量,求鸡兔各多少只。
h=int ( input( “请输入总数")) # 请输入总数10
f=int ( input(“请输入脚数")) # 请输入脚数34
tu=int(f/2-h) # 一只兔子一个头四只脚;(tu+h)=f
ji=int( h-tu)
if( tu<0 or ji<0 or ji*2+tu*4!=f) :
print("输入有误")
else:
print("鸡兔数量分别为: ",tu, ji) # 鸡兔数量分别为:7 3
-
多分支选择结构
print(“请输入您的成绩:") # 请输入您的成绩:0
score=int(input( ))/10-5
if score>=4:
print("优秀')
elif score>=3:
print( '良好')
elif score>=2:
print('中等')
elif score>=1:
print('及格')
else:
print('不及格') # 不及格
【选择结构的嵌套】
# 【形式】
# if 表达式1:
# 语句块1
# if表达式2:
# 语句块2
# else:
# 语句块3
# else:
# if表达式4:
# 语句块4
# 【例题】
# 求等级,并用(优秀A,良好B,中等C,及格D,不及格<F)。
degree=' DCBAAF"
score=int( input("请输入您的成绩:"))
if score>100 or score<0: print( "wrong score." )
else:
index=( score-60 )//10
if index>=0: print( degree[ index])
else: print( degree[-1])
# 请输入您的成绩:55
# F
【循环结构】
通过判断某些特定条件是下满足来决定是否继续循环体的执行
-
while循环
【while形式】
while 条件表达式:
循环体
【语义】
1.当条件表达式成立时,循环体将被执行,执行完继续判别条件表达式
2.当条件表达式不成立时,循环体将不被执行,整个循环语句结束
【例题】
利用下列公式求圆周率pi的值
Pi,t,n=0.0,1.0,1
while n<100: #算100次
Pi=Pi+t
t=t*n/(2*n+1)
n+=1
print (2*Pi) # 3.1415926535897922
-
for循环
【for形式】
for 变量 in 序列或其他迭代对象:
循环体
【语义】
变量依次取序列或其他迭代对象中的元素,每取一个执行循环体一次.
word= 'Hello'
for i in word:
print(i,end = " " )
alist=[1,3,5,8]
for x in alist:
print(x,end=" ")
# H e l l o 1 3 5 8
- for语句经常与range()函数配合使用,range()函数用于生成整数序列
range([<起始值>,] <终值> [,<步长>]) 终值必须有!
- 含义:生成整数序列,其中第一个值为起始值,后面的值为前面的值加步长,直到最接近终值的值
说明:
- 如果只有两个参数,则步长为默认值1
- 如果只有一个参数,则起始值为默认值0,步长为默认值1
- 如果一开始起始值超过了终值,则序列为空序列
for i in range( 5):print( i,end=' ') # 0 1 2 3 4
for i in range( 1,5):print( i,end=' ') # 1 2 3 4
for i in range( 1,5,2):print( i,end=' ') # 1 3
for i in range( 5,2,-1): print( i,end=' ') # 5 4 3
for i in range( 5,2,1): print( i,end=' ') # 一开始起始值超过了终值,则序列为空序列
【例题】
求整数n的阶乘
n= int(input())
fac=1
for i in range (1,n+1):
fac*=i
print ('%d! = %d\n'%(n,fac))
break 语句
作用:退出整个循环
【例题1】输入成绩,直到输入-1为止 。
s_list=[]
while True:
score=int( input('请输入学生成绩:'))
if score==-1:
break
s_list.append ( score)
print(s_list)
# 请输入学生成绩:90
# 请输入学生成绩:67
# 请输入学生成绩:一1
# [90,67]
【例题】
如果一个3位数等于其各位数字的立方和,则称这个数为水仙花数。例如:153=1^3+5^3+3^3,因此153就是一个水仙花数。求1000以内的水仙花数(3位数)。
for n in range( 100,1000 ):
i = n // 100 # 百位
j = n // 10 % 10 # 十位
k = n % 10 # 个位
if n == i ** 3 + j** 3 + k **3:
print ( n)
# 153
# 370
# 371
# 407
continue 语句
作用:退出当前循环
【例题】求输入的4个整数中正数的个数及其平均值
sum, n=0,0
for i in range( 4 ):
a=int( input('请输入整数:'))
if a<=0 :
continue
sum=sum+a
n=n+1
print('正数总和:',sum,'\t正数个数:',n )
# 请输入整数:3
# 请输入整数:5请输入整数:-3
# 请输入整数:7
# 正数总和:15 正数个数:3
【循环结构中的else形式】
while-else形式:
while 条件表达式:
循环体
else:
代码块
语义:
1.当条件表达式成立时,循环体将被执行,执行完继续判别条件表达式
2.当条件表达式不成立时,循环体将不被执行,整个循环语句结束
3.当条件表达式不成立而结束整个循环时,执行代码块,当遇到循环体中的break而结束整个循环时,不执行代码块
i=0
while i<5:
print(i)
i+=1
else:
print('hello world')
# 0
# 1
# 2
# 3
# 4
# hello world
当 while 循环正常执行完的情况下,执行 else 输出,如果 while 循环中执行了跳出循环的语句,比如 break ,将不执 行 else 代码块的内容。
本文介绍了Python的基础知识,包括变量命名规则、数字与进制转换、字符串操作、运算符与表达式。还详细讲解了选择结构(如if-else)和循环结构(while、for循环),以及break和continue语句的使用。此外,提到了Python的内置函数和代码编写规范。
1586

被折叠的 条评论
为什么被折叠?



