python 新手入门

python 新手入门

  • 环境配置
  • 从hello world开始
  • 来看一个简单的小程序
  • 列表
  • 字典
  • 总结

环境配置

首先声明,我用的系统是 ubuntu20.04,已经自带了python环境。
这篇博客是针对有C语言基础的同胞们,所以对C语言不了解的伙计不建议“食用”。
ubuntu可以打开终端用python3 --version看看配置好的python版本。拿我自己的电脑举例,我的是python3.8.5
然后我用的编译器是pycharm

从hello world开始

只需要一个输出函数就足矣。

print("hello world!")

既然讲到了输出函数,这里稍微展开一下。python中的输出函数是自带换行的,也就是相当于自带C语言中的printf("\n"),那么就有人要问了,如果我不想换行怎么办?
你可以这样:

print("hello","world")							#这样中间加","会让"hello"和"world"中间加上空格
print("hello", end=" ")							#这里的"end"其实就相当于末尾的转义字符,默认是"\n"
print("world", end="")							#这也是为什么默认会换行,可以将其改为任何你想要的,例如为空格或为空

来看一个简单的小程序

这是一个简单的随机摇号小程序。这个会便于我们理解python的基础语法结构。

import random									#引入模块
import string
count = 0										#定义变量,不需要指明变量类型
while count < 3:
    _choice = []
    for i in range(20):
        n1 = "-".join(random.sample(string.ascii_uppercase, 3))+"-"
        n2 = "".join(random.sample(string.digits, 3))
        _choice.append(n1+n2)
        print(n1+n2)
    choice = input("请输入你喜欢的号码:(如果没有喜欢的号码请输入 # )").strip()
    if choice in _choice:
        exit(f"恭喜你选择了新的号码:{choice}")
    elif choice == '#':
        print("请重新选择:")
    else:
        print("你输入的号码不合法,请重新选择:")
    count += 1
  1. 首先,我们会注意到import,这个是用来引入模块的,里边包含了很多函数,可以供你使用,例如这个random就是随机数,string就是字符串——你也可以暂时形象地理解为C语言中的头文件。
    python不需要在每一句的结尾加;,这一开始让我很不习惯,但对于很多刚接触编程的小白来说却很方便。
  2. 同时我们可以发现,python中没有用到{}“划分” 代码的结构,而是直截了当地使用了缩进,你可以直接使用TAB表示 “往里一层” ,这样就能代替{}的作用,同时也能让代码看上去更美观——这一点我还是蛮喜欢的。
  3. while循环和C语言中的差别不大,但是for循环就不同。拿上边的for i in range(20):举例,这个定义的i就相当于range(20)中的每个元素,也就是0-19依次遍历。这个例子不太好理解,可以参考下边这一段:
a = [11, 25, 31, 44, 56, 69, 78, 82]
for i in a:
	print(i)							#输出"a"中的每个元素值
  1. 第四个要提的就是字符串,python中的字符串用“”或者''都可以,只要保证开头结尾用的一致就好。同时关于字符串的函数,上边示例用到的"-".join()是将()中的列表(你可以暂时理解为C语言中的数组)元素一一用-拼接起来成为一个新的字符串。
    python中也加入了字符串的+ *等很方便的操作。+自然就是字符串的拼接,例如示例n1+n2。而*就是将字符串复制,例如"Hi"*4就是"HiHiHiHi"
    python中字符串的一个特性,你可以在字符串前加上f,再在字符串中加入你想输出的{变量},如同示例中的f"恭喜你选择了新的号码:{choice}",就可以直接在字符串中替换成这一变量的值。
    关于字符串的函数有很多,这里就不一一讲解了。下边有一些关于字符串的一些函数,有兴趣的可以试试。
a = "asdasdasd"
print(type(a))
print(a.count("a"))         # 记录字符串中"a"有多少个
print(a.count("a", 0, 5))   # 记录从位置0-5有多少个"a"
print(a.endswith("wa"))     # 判断字符串是否以“wa”结尾
print(a.find("但"))          # 找到字符串中"但"的索引,找不到会返回-1
print(a.find("a"))
print(a.isdigit())          # 判断是否是数字
print("-".join(['a', 's', 'd', 'a', 'b']))      # 拼接字符串,注意后边一定要是一个列表
a = a.replace("s", "M")     # 替换字符串里的字符,注意要要重新赋值
print(a)
a = a.replace("M", "m", 1)  # 这个就是只替换一个罢了
print(a)
print(a.startswith("a"))
a = " " + a + " "
print(a)
a = a.strip()               # 以上以下都只是函数,并不会改变其本身的值,如果要改变的话记得重新赋值
print(a)                    # 上边这一个指令是忽略空格
print(a.split("a", 3))      # 将字符串变为列表的形式,“a”表示以什么为标志分,3表示分几次,注意这里以"a"开头,那么此时会分出一个空格出来,同理,如果你以“a”结尾,那结尾会分出一个空格
# 如果分割次数过大,超出的部分没用
  1. 输入函数input()这个括号里可以加上你同时需要打印的值,就不需要像C语言当中先printfscanf,直接一步到位。
  2. 这里讲一个很方便的in,这条指令能很方便地判断一个元素是否在另一个列表(当然不止列表)中,如示例中的if choice in _choice:,返回值自然也是TrueFalse,不过值得一提的是,python中的True,False开头需要大写。
  3. 最后一个值得注意的地方,python中有elif,等同于C语言中的else if
  4. 提一点示例中没有提到的,python中的常用逻辑运算符是andor以及not(not还可以和in连用,如not in),至于各自是什么意思,相信学过小学英语的应该都知道了。

列表

列表很大程度上类似于C语言中的数组,以下是一些常用的列表操作,有兴趣的同胞们可以在编译器里试试看看效果。

a = ['Alex', 'Jack', 'John', 'Tim']
a.append('Coke')                                    # 在列表末尾添加元素
a.insert(1, 'Max')                                  # 在1位置插入一个元素
b = ['阿斯顿', '狗蛋', '就这']
a.extend(b)                                         # 将a接上b
print(a)
a.insert(1, [1, 2, 3])                              # 没错,list里面可以放任何数据,并不一定要求一致
print(a)
print(a[1][1])
del a[1]                                            # 删除操作
print(a)
print(a.pop())                                      # 删除list中最后一个值并返回
print(a)
print(a.pop(-2))                                    # 也可以指定,其中-2表示倒着数第2个
if '狗蛋' in a:
    print(a.index('狗蛋'))                           # 找到'狗蛋',取索引,前提是存在,所以一般用in先判断是否存在
    print(a.count('狗蛋'))                           # 找到'狗蛋'的数量
else:
    print("查找内容不在列表内")
print(a[0:4])                                       # 切片,返回从0-3(不包括4)的值
print(a[:4])
print(a[4:])                                        # 倒着写也可以
print(a[-3:])
print(a[0::2])                                      # 跳着切,最后的2表示步长,不输默认为1
a.clear()											# 清空
print(a)
n = [2, 3, 5, 23, 78, 1, 42, 99, 101, 14]
n.sort()                                            # 从小到大排序
print(n)
n.reverse()                                         # 反转
print(n)
for i in n:                                         # 循环列表
    print(i)
for i in enumerate(n):                              # 循环列表的同时打印对应的索引,这里enumerate(n)相当于关于n的一个列表,其中每个元素包括n中每个元素的索引和值。也就是说其实我们每次打印的是一个列表
    print(i)
for i in enumerate(n):                              # 循环列表,带索引,这样可以把表示列表的括号去掉,好看一些
    print(i[0], i[1])

因为和C语言比较类似,只要在编译器里运行一遍看看效果就很好理解,所以这里就不详细展开了。

字典

这里举个例子,一个公司里有很多人,我现在想要查看某一个人的工资。
如果是C语言,我们是不是要把整个数组遍历一遍?这样会浪费很多时间。因此就要引入一个新的东西——字典
字典中会有key和对应的值value,而我们可以根据key来查找对应的value,这样搜索会比遍历一遍列表快得多。

info ={
     
        "Alex": [46, '老板', 180000],
        "Tim": [32, '部门主管', 30000],
        "Jack": [28, "打工仔", 10000]
    }
print("Alex" in info)
print(info["Tim"])                                      # key 必须唯一
for i in range(3):
    print(info["Tim"][i], end=" ")                      # 把列表的括号去掉,显得美观
print()
info["Tim"] = 1                                         # 对应的值可以随意改变
print(info["Tim"])

总结

学习一门新的语言,可以拿之前学过的语言去进行对比学习(也要注意,别记混了),这样可以快速理解新语言的一些特性,以及两种语言各自优缺点。还有就是一定要实践,学着编几个小程序熟悉基本语法,多动手实践,光靠看文档,看视频,不动手是学不熟练的。

你可能感兴趣的:(python,列表,字符串,编程语言)