目录
01、变量与常量
【python变量命名规则】
【数字】
【进制转换】
【输出格式】
【字符串】
转义字符
02、运算符与表达式
【位运算符】
【逻辑运算符】
【成员运算符】
【身份运算符】
03、常见内置函数
04、选择与循环
【条件表达式】
【选择结构】
单分支选择结构
双分支选择结构
多分支选择结构
【选择结构的嵌套】
【循环结构】
while循环
for循环
break 语句
continue 语句
【循环结构中的else形式】
(下划线开头的变量有特殊含义,不能以数字开头)
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(整数可以无限大)
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码
# 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
# 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) # 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 >>:右移两位
”在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。
语句 | 原码 | 反码 | 补码 |
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
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代码编写规范】
x 选择结构:通过判断某些特定条件是否满足来决定下一步的执行流程 range([<起始值>,] <终值> [,<步长>]) 终值必须有! 说明: 【例题】 求整数n的阶乘 作用:退出整个循环 【例题1】输入成绩,直到输入-1为止 。 【例题】 作用:退出当前循环 【例题】求输入的4个整数中正数的个数及其平均值 while-else形式: 语义: 当 while 循环正常执行完的情况下,执行 else 输出,如果 while 循环中执行了跳出循环的语句,比如 break ,将不执 行 else 代码块的内容。 【选择结构】
单分支选择结构
# 【形式】
# 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,不及格
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= int(input())
fac=1
for i in range (1,n+1):
fac*=i
print ('%d! = %d\n'%(n,fac))
break 语句
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 语句
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:
代码块
1.当条件表达式成立时,循环体将被执行,执行完继续判别条件表达式
2.当条件表达式不成立时,循环体将不被执行,整个循环语句结束
3.当条件表达式不成立而结束整个循环时,执行代码块,当遇到循环体中的break而结束整个循环时,不执行代码块i=0
while i<5:
print(i)
i+=1
else:
print('hello world')
# 0
# 1
# 2
# 3
# 4
# hello world