【python】--基础----入门程序、字符串、列表、字典--pycharm

目录

1、基本输入输出

2、【入门程序1】猜拳游戏

3、【入门程序2】输出九九乘法表

4、字符串基本操作--增删改查

5、列表基本操作

5、【入门程序3】随机分配办公室

 6、字典基本操作


TT最近在学习Python, 有很多东西如果不记录的话就忘了,敲下来方便以后查找。

学习资源:

bilibili:  黑马程序员--(课程标题)--黑马程序员全套Python教程_Python基础入门视频教程,零基础小白自学Python必备教程

使用的解释器和编辑器

解释器链接:Python Release Python 3.7.2 | Python.org

【python】--基础----入门程序、字符串、列表、字典--pycharm_第1张图片

编辑器链接

Download PyCharm: Python IDE for Professional Developers by JetBrains

【python】--基础----入门程序、字符串、列表、字典--pycharm_第2张图片

[正片开始]

1、基本输入输出

python使用input 和print 输入输出,例如

# 我有多重
weight = 80,
print("我有%.2f重" % weight) # 格式化输出,保留两位小数,不足的在后面补0
print(f'我有{weight}重')  # 后面不需要分号
secret = input("请输入你的密码:") # input也有打印功能,即先打印前面的一句话,再接收输入
print(f'您输入的密码是{secret}')
print(type(secret)) # type函数可以返回数据的类型  输出class<'str'>
print(type(int(secret))) # input输入默认是str类型,int()函数可以将其变为int类型,即这行输出class<'int'>

2、【入门程序1】猜拳游戏

Python实现猜拳游戏比c要方便,请看代码和注释:

# 猜拳游戏
import random  # 相当于c的头文件,rand()函数(生成随机数)必须的
player = int(input('请出拳:0--石头,1--剪刀,2--布  :'))  # input默认输入为'str',必须修改为'int'
computer = random.randint(0, 2)
if (player == 0 and computer == 1) or (player == 1 and computer == 2) or (player == 2 and computer == 0):
    print("玩家获胜")
elif player == computer:
    print('平局')
else:
    print('电脑获胜')

3、【入门程序2】输出九九乘法表

基本循环和变量操作

# 九九乘法表
i = 1
while i <= 9:  
    j = 1
    while j <= i:
        print(f'{j}*{i}={j*i}', end = '\t') # '\t'制表符--让输出更加整齐美观
        j += 1
    print()  # print() 自带一个'\n', 即此处相当于打印一个换行符
    i += 1   # 循环只需要缩进即可,不需要大括号

4、字符串基本操作--增删改查

这里需要强调的是Python支持切片操作,即可以把字符串的任何连续片段截取到另外一个字符串上,使用起来非常方便

# 切片 序列名[begin:over:length]length指间隔的距离,隔几个选一个(length默认是1,可以省略)
str = "iostream"
i = 0
while i < 8:
    print(f'{str[i]}' , end = '\t' )
    i += 1
print()
print(str[2:5:2])# 切片是不包含右边的数字的  即左闭右开
print(str[2:5])
print(str[:5])# 前面不写默认是0
print(str[2:])# 后面不写默认是最后
print(str[:])# 如果都不写,就是全部
print(str[::-1]) #如果步长是负数,则是倒序排列
print(str[-4:-1]) # 也是倒序排列,但是不包含结束的位置
print(str[-4:-1:-1]) # 这个不行,因为开始到结束的方向和步长的方向是反的
# 查找
mystr = 'hello world and itcast and itheima and python'
# 1、find()
print(mystr.find("and")) # 查找整个字符串
print(mystr.find("and", 15 , 30)) # 后面分别是开始和结束的下标
print(mystr.find("ands")) # 找不到就返回-1

# 2、idndex()
print(mystr.index("and")) # 查找整个字符串
print(mystr.index("and", 15 , 30)) # 后面分别是开始和结束的下标
# print(mystr.index("ands")) # 找不到就报错

# 3、count()用于统计子串出现的次数
print(mystr.count('and'))
print(mystr.count('and', 15 , 30))
print(mystr.count('ands')) # 找不到就返回0
# rfind()和rindex()用法和find()、index()一样,但是查找顺序从右侧开始
# 修改
#1、replace 不会修改原来的字符串,返回修改后的字符串(字符串是不可变数据类型)
mystr = 'hello world and itcast and itheima and python'
new_str = mystr.replace('and' , 'he') # 后面还有一个参数,表示需要修改的次数,默认是全部
new_str1 = mystr.replace('ans' , 'he' , 1)
print(f'{mystr}')
print(f'{new_str}')
print(f'{new_str1}')

# 2、split() 分割字符串,用法跟replace一样,但返回一个不含分割子串的列表
list = mystr.split('and', 2) # 后面的也是次数,默认是全部
print(list)

# 3、join()  把列表的很多字符串连接成一个大字符串
list = ['aa', 'bb', 'cc']
new_str2 = '...'.join(list) # 分割符要写在前面
print(new_str2)

5、列表基本操作

列表就相当于C语言的数组了,方便的是列表可以很快的判断数据是否在列表当中

# 判断数据是否在列表中  in  和  not in 函数返回的都是bool类型
in  如果在,返回true, 不在返回false
not in  如果不在,返回true, 在返回false
print('TOM' in name_list)
print('tom' not in name_list)# 注意用法
# 查找
# 函数 1、index()  2、count()  跟字符串一样

print(name_list.index('TOM'))
# print(name_list.index('TOM', 1, 2))# 找不到就报错

print(name_list.count('TOM'))
# print(name_list.count('TOM', 1, 2))# 找不到就返回0(三个参数会报错)

# 3、len()  返回列表的数据个数(列表,字典,元组都可以使用)
print(len(name_list))# 注意用法跟上面不同
# 增加
# 1、append() 添加在结尾,以整体添加,如果是一个序列,就添加一个序列,如果是一个列表,就添加一个列表
name_list.append('xiaoming')# 列表是可变类型
print(name_list)
name_list.append([11, 22])
print(name_list)

# 2、extend() 添加在结尾,逐一添加
name_list.extend('xiaoming')
print(name_list)
name_list.extend([11, 22])
print(name_list)

# 3、insert() 指定位置增加数据,以整体增加,第一个参数是下标
name_list.insert(1, 'xiaoming')
print(name_list)
# 删除
# 1、del  可以删除整个列表,也可以删除指定位置的数据
del name_list # 与del(name_list)等价
del name_list[0]
print(name_list)

# 2、pop 删除指定位置的数据,并返回被删除的这个数据,默认从最后位置开始删除
str = name_list.pop(1)# 参数可以省略
print(name_list)
print(str)

# 3、remove  删除指定数据 如果数据不存在就报错,如果这个数据有多个,只删除第一个匹配项
name_list.remove('TOM')
print(name_list)

# 4、clear 清空列表,跟del不同,clear清空之后在打印列表不会报错
name_list.clear()
print(name_list)
# 修改
name_list[0] = 'aaa' # 修改指定位置的数据
print(name_list)

# reverse 逆序,把所有数据反过来存
list = [1, 2, 3, 5, 8, 9, 4, 6]
list.reverse()
print(list)

# 排序 sort reverse = False 升序(默认)  reverse = True 降序(False, True首字母大写)
list.sort(reverse = False)
list.sort(reverse = True)
print(list)

# 列表的复制  copy
list2 = list.copy()
print(list)
print(list2)

5、【入门程序3】随机分配办公室

# 随机分配办公室
# 八位老师,3个办公室,随机
import random
teachers_name = ['TOM', 'LISA', 'ALICE', 'FRACE', 'FRANK', 'ROSE', 'HELEN', 'JOHN']
offices = [[], [], []]
for i in teachers_name:
    j = random.randint(0, 2)
    offices[j].append(i)
for office in offices:
    print(f'办公室的人数是{len(office)}, 老师分别是: ')
    for name in office:
        print(name)

 6、字典基本操作

字典和列表都可以存储不同类型的数据,但那样并不被提倡

字典的操作函数跟列表很像。

dict1 = {'name': 'tom', 'age': 20, 'gender': '男'}  # 跟列表不同,字典的数据是以键值对的方式存储的,用逗号隔开,例如第一个,'name'是这个数据的键值key,而'tom',是这个数据的值
# 字典的删除  注意用法
del  # 删除字典或者删除指定键值对
del(dict1)  # 删除字典,再次打印字典会报错
del(dict1['name'])  # 删除指定键值对
del(dict1['names']) # 如果此键值对不存在就报错

# clear  清空字典,但再次打印不会报错
dict1.clear()
print(dict1)

# 字典的查找
# 1、get()  两个参数,第一个参数是键值,键值存在返回键值的值, 键值不存在时:若第二个参数存在,返回第二个参数,如第二个是参数不存在,返回none
print(dict1.get('name'))  # tom
print(dict1.get('names'))  # none
print(dict1.get('names', 110))  # 110

# 2、keys()  返回可迭代的对象(用for循环遍历的),键值对名称
print(dict1.keys())  # dict_keys(['name', 'age', 'gender'])

# 3、values()  返回可迭代的对象(用for循环遍历的),键值对的值
print(dict1.values())  # dict_values(['tom', 20, '男'])

# 4、items()  返回可迭代的对象(用for循环遍历的),几个元组(小括号表示的),元组数据1是key, 元组数据2是key的值
print(dict1.items())  # dict_items([('name', 'tom'), ('age', 20), ('gender', '男')])

# 字典的遍历
for key in dict1.keys():    # 遍历字典的key
     print(key)

for value in dict1.values():  # 遍历字典的value(key的值)
    print(value)

for item in dict1.items():     # 遍历字典的键值对
    print(item)

# 拆包
for key, value in dict1.items():  #拆包:元组的第一个元素存储在第一个临时变量key, 第二个元素存储在第二个临时变量value上
    print(f'{key} = {value}')

PS:没有什么东西是看看就能学会的,这篇文章最大的缺点就是没有列出相关程序的输出结果,希望我和读者在读的时候能够顺便运行一下程序,加深理解。

你可能感兴趣的:(python,pycharm,开发语言)