python入门速通基础( 六 )


格式化输出
的格式化输出主要有四种方式:
name = input()print(f'I am {name} and I am studying Python in Nowcoder!')
name = input()print('I am {} and I am studying Python in Nowcoder!'.format(name))
name = input()print('I am %s and I am studying Python in Nowcoder!'%name)
print("I am",input(),"and I am studying Python in Nowcoder!")
注意
name = input()只能读入一个数据,数字,字符串等,不能是多个 。
而输入name =input("").split(" ")(注意split(“”)中的“”中间无内容会报错,空格算内容),这样的输入可以输入一个多个数字,字符串,都会放在列表中 。但是如果是:
name1,name2 = input("请输入").split(" ")
此时就不能随意输入多个数据,必须是和前面变量对应数量的个数,否则也会报错 。
注意事项
input().split("\n")无法实现隔行读取
在中,字符串是不可变的,也就是你不能直接修改字符串中的某个字符 。当你尝试执行 str1[0] = str((int(str1[0]) + 3) % 9) 这行代码时,会抛出一个错误,提示你不能为字符串的指定位置赋值 。
如果你想修改字符串中的某个字符,可以考虑将字符串转换为列表,进行修改后再转换回字符串 。例如:
str1 = list(str1)str1[0] = str((int(str1[0]) + 3) % 9)str1 = ''.join(str1)
这样就可以实现将字符串中的第一个字符修改为 (int(str1[0]) + 3) % 9 的结果 。
为什么下面这段代码不能执行对list1的修改?
str1 = input()list1 = list(str1)for i in range(len(list1)):list1[i] = str((int(list1[i]) + 3) % 9)print(list1)
答:
这段代码没有改变列表 list1 中的元素,是因为在循环中你使用的是变量 i,它仅仅是一个迭代器,赋值操作并不会修改列表元素本身 。每次迭代,i 都指向列表中的一个元素,但是对 i 的修改并不会反映到列表中 。
如果你想要修改列表中的元素,可以通过索引直接访问和修改元素 。以下是修正后的代码:
str1 = input()list1 = list(str1)for i in range(len(list1)):list1[i] = str((int(list1[i]) + 3) % 9)print(list1)
index和find函数的区别:
下标索引不会越界,但是下标使用会越界(列表,元组,字符串,字典)
list1 =[ 1,3,4,5,5]print(list1[1:100000])# result[3, 4, 5, 5]
list1 =[ 1,3,4,5,5]print(list1[8])# resultlist index out of range
对于字典一样,如果查找的键不在字典中,就会报错
所以防止报错,一般在字典中查找一个不确定在不在字典中的键时,我们使用in先检测是否在字典中
name in dict1 andsecret == dict1[name]
保留小数
主要有三种方法
float转int
float转成int只需要int()函数即可 。
但是在输入字符串数,可能有人会想能不能直接通过int()转换,如将字符”12.3“直接转成12:
value1 = int(input())
答案是不行的,字符串"123.123"不能通过int()直接转换成123
正确做法是: