蓝桥杯Python快速入门(1)

本文介绍了Python的基础知识,包括变量命名规则、数字与进制转换、字符串操作、运算符与表达式。还详细讲解了选择结构(如if-else)和循环结构(while、for循环),以及break和continue语句的使用。此外,提到了Python的内置函数和代码编写规范。
摘要由CSDN通过智能技术生成

目录

01、变量与常量

【python变量命名规则】

【数字】

【进制转换】

【输出格式】

【字符串】 

 转义字符

 02、运算符与表达式

【位运算符】

【逻辑运算符】 

【成员运算符】

【身份运算符】

03、常见内置函数

04、选择与循环

 【条件表达式】

 【选择结构】

单分支选择结构

双分支选择结构

多分支选择结构 

【选择结构的嵌套】 

【循环结构】

while循环

for循环

break 语句

continue 语句

【循环结构中的else形式】


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
语句原码反码补码
330010 00010010 00010010 0001
-331010 00011101 11101101 1111

按位取反: 

语句数值原码补码求反输出
print(~5)50000 01010000 01011111 1010-6
print(~-6)-61000 01101111 10100000 01015

【逻辑运算符】 

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 代码块的内容。 

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小叶pyか

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值