Python基础语法笔记和作业

1. 标识符

  • 第一个字符必须是字母表中字母或下划线 _ 。
  • 标识符的其他的部分由字母、数字和下划线组成。
  • 标识符对大小写敏感。
  • 在 Python 3 中,可以用中文作为变量名,非 ASCII 标识符也是允许的了。

2. python保留字

[‘False’, ‘None’, ‘True’, ‘and’, ‘as’, ‘assert’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘except’, ‘finally’, ‘for’, ‘from’, ‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘nonlocal’, ‘not’, ‘or’, ‘pass’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’]

3 转义字符

  • \t 制表符
  • \n 换行符
  • \ 后面的字符表示字符原意
  • r " " 引号内的所有内容都是字符串的本意
  • f" " 格式化字符串常量。

4 占位符

  • %s 字符串占位符
  • %f 浮点数占位
  • %d 整数占位

5. 基本数据类型

标准数据类型

Number(数字)

Python3 支持 int、float、bool、complex(复数)。在Python 3里,只有一种整数类型 int
内置的 type() 函数可以用来查询变量所指的对象类型

print(type(a), type(b), type(c), type(d))
print(type(a), type(b), type(c), type(d))

<class ‘int’> <class ‘float’> <class ‘bool’> <class ‘complex’>

此外还可以用 isinstance 来判断:

a = 111
isinstance(a, int)

True

isinstance 和 type 的区别在于

  • type()不会认为子类是一种父类类型。
  • isinstance()会认为子类是一种父类类型。

5 + 4 # 加法
9
4.3 - 2 # 减法
2.3
3 * 7 # 乘法
21
2 / 4 # 除法,得到一个浮点数
0.5
2 // 4 # 除法,得到一个整数
0
17 % 3 # 取余
2
2 ** 5 # 乘方
32

String (字符串)

str = 'Runoob'

print (str)          # 输出字符串
print (str[0:-1])    # 输出第一个到倒数第二个的所有字符
print (str[0])       # 输出字符串第一个字符
print (str[2:5])     # 输出从第三个开始到第五个的字符
print (str[2:])      # 输出从第三个开始的后的所有字符
print (str * 2)      # 输出字符串两次,也可以写成 print (2 * str)
print (str + "TEST") # 连接字符串

输出结果

Runoob
Runoo
R
noo
noob
RunoobRunoob
RunoobTEST

字符串常用函数

  • find() --> 检测字符串是否包含,返回该字符串位置,如果不包含返回-1
str="Hello World"
str.find("Hello") # 返回值:0
str.find("W") # 返回值:6, 这里需要注意下:空格也是一个字符。W前面有个空格,所以W位置是6
str.find("R") # 返回值:-1,并不包含在Hello World中,如果不包含返回-1
  • index() --> 检测字符串是否包含指定的字符,并返回开始的索引值,如果不包含会报错
str.index("Hello") # 返回值:0
str.index("o") # 返回值:4
str.index("W") # 返回值:6
str.index("R") # 返回值:报错信息 ,因为R并不包含其中。 所以建议慎用,如果值不存在程序报错就完蛋了。

  • len() --> 返回字符串长度,以0开始计算
len(str) #返回值:10
  • count() --> 收集指定字符在字符串中出现的次数
str.count("o") 返回值:2, o字符在Hello World中存在两个。
 
# 也可以指定count()函数从某个位置开始查找。 语法为:count(" ",start,end)
str.count('o',5,10) 返回值:1, 原因:指定位置后会从索引5开始检索,以索引10结束。 510之间只存在一个'o'
str.count('o',4,len(str)) 返回值: 2,索引从4开始,到字符串结束。len(str)字符串长度
  • replace() --> 替换字符串
str.replace('hello','HELLO')  # 把小写的hello替换为大写的HELLO
str.replace('W','B')  # 把W替换为B
  • split() 字符串切割
str.split('o') #以列表的形式返回["hell","w","rld"] ,hello world 里面的o被切割掉
  • upper() --> 将所有的字符转换为大写
str.upper() #返回值为 HELLO WORLD
  • title() --> 首字母转换为大写
str.title() #返回值:Hello World
  • center() --> 返回一个原字符串居中,并以空格填充至长度宽度的新字符串
str.center(80) #返回值: ( Hello World ) 其字符串两头被空格填充
  • join() --> 在字符串后面插入一个指定字符,构造一个新的字符串
_str="_"
list=["I","Love","You"]
_str.join(list) # 返回值: I_Love_You 每个列表元素后面都插入一个下划线
  • isspace() --> 检测字符串中是否只包含空格,如果有返回Trun反之返回False,通俗的讲就是判断非空验证
str=" "
strOne="早上好!"
str.isspace() # 返回trun
strOne.isspace #返回false
  • isalnum() --> 检测是否只包含数字或字母。用处:可以用于判断密码,一般情况下密码不能输入汉字或空格。
strOne="a123"
strTwo="a 456"
strOne.isalnum() # 返回trun
strTwo.isalnum() # 返回false ,因为包含空格
  • isdigit() --> 检测字符是否只包含数字, 返回Trun 和 False
str='123'
strone='a123'
str.isdigit() 返回trun 
strone.isdigit() 返回false
  • isalpha() --> 检测字符串是否只包含字母
str="abcd"
strone="123abacd"
str.isalpha() # 返回 trun
strone.isalpha() # 返回false

作业

a,b = 6, 8 我想让a=8 b=6我该怎么办?用2种方式实现

方法一

a,b = 6, 8
print(f"a = {a}\tb = {b}")
c = a
a = b
b = c
print(f"a = {a}\tb = {b}")

a = 6 b = 8
a = 8 b = 6

方法二

a,b = 6, 8
print(f"a = {a}\tb = {b}")
a, b = b, a
print(f"a = {a}\tb = {b}")

a = 6 b = 8
a = 8 b = 6


完成字符串的逆序以及统计

  1. 设计一个程序,要求只能输入长度低于31的字符串,否则提示用户重新输入
  2. 打印出字符串长度
  3. 使用切片逆序打印出字符串
# 1
print("请输入一个字符串")
str1 = ''
s_input = True
while s_input:
    str1 = input("input:")
    if len(str1) >= 31:
        print("请重新输入一个字符串")
    else:
        s_input = False
print(f"str1: {str1}")
# 2
print(f"字符串长度: {len(str1)}")
# 3
str2 = str1[::-1]
print(f"str2: {str2}")

要求从键盘输入用户名和密码,校验格式是否符合规则,如果不符合,打印出不符合的原因,并提示重新输入
• 用户名长度6-20,用户名必须以字母开头
• 密码长度至少6位,不能为纯数字,不能有空格

import re

user_name = ''
pwd = ''
s_input = True

while s_input:
    user_name = input("用户名:")
    reg = '^.{6,20}$'
    obj = re.match(reg, user_name)
    pwd = input("密码:")
    verify_user_name = user_name.isalpha() is False and obj is not None
    verify_user_pwd = pwd.isdigit() is False and len(pwd) > 6
    if verify_user_name and verify_user_pwd:
        print(f"用户名: {user_name}")
        print(f"用户名: {pwd}")
        s_input = False
    else:
        print(f"用户名或密码不对")

猜你喜欢

转载自blog.csdn.net/chaziliao2/article/details/112875176